Come scrivere un oggetto JSON in un file in PowerShell
- Oggetti Personalizzati PowerShell
- Oggetto JSON PowerShell a Stringa JSON
-
Salva la Stringa JSON in un File Utilizzando
ConvertTo-Json
eOut-File
-
Salva la Stringa JSON in un File Utilizzando
ConvertTo-Json
eSet-Content
-
Salva la Stringa JSON in un File Utilizzando
ConvertTo-Json
eAdd-Content
- Conclusione

PowerShell, un linguaggio di scripting robusto e versatile, fornisce strumenti potenti per gestire e manipolare i dati. Quando si tratta di gestire i dati JSON (JavaScript Object Notation), PowerShell offre modi efficienti per convertire oggetti personalizzati in stringhe JSON e successivamente scriverle su file.
In questo articolo, ci addentreremo nel processo di conversione di oggetti PowerShell in stringhe JSON e nel salvataggio in file utilizzando vari cmdlet come ConvertTo-Json
, Out-File
, Set-Content
e Add-Content
.
Oggetti Personalizzati PowerShell
Il PSCustomObject
è un elemento fondamentale in PowerShell utilizzato per definire oggetti personalizzati. Un oggetto personalizzato contiene tipicamente proprietà e i loro valori associati, fornendo un modo strutturato per organizzare i dati.
Oltre a creare oggetti personalizzati da zero, PowerShell è anche abile nella gestione e nel processamento di oggetti JSON in modo efficiente.
Creazione di un Oggetto Personalizzato JSON
Iniziamo esaminando come creare un oggetto personalizzato JSON utilizzando una struttura JSON di esempio. Memorizzeremo questa struttura JSON nella variabile $MyJsonVar
.
$MyJsonVar = @"
{
"ExampleJson":{
"Fruit1":{
"Name":"Apple",
"Price":"`$10.00"
}
}
}
"@
Output:
In questo esempio, abbiamo definito una struttura JSON che rappresenta informazioni sui frutti.
Conversione di JSON in Oggetto Personalizzato PowerShell
Per convertire la rappresentazione JSON in un Oggetto Personalizzato PowerShell, utilizziamo il cmdlet ConvertFrom-JSON
. Assegniamo il nuovo oggetto JSON alla variabile $MyJsonObject
.
$MyJsonObject = $MyJsonVar | ConvertFrom-Json
Il cmdlet ConvertFrom-JSON
trasforma la struttura JSON in un appropriato PSCustomObject
.
Visualizzazione dell’Oggetto Personalizzato PowerShell Creato
Ora, visualizziamo il PSCustomObject
appena creato, che corrisponde alla struttura JSON originale.
$MyJsonObject
Output:
Questi comandi accedono e visualizzano le proprietà prezzo e nome del frutto definite nell’oggetto personalizzato. Quindi, è stato confermato che abbiamo ottenuto un appropriato oggetto personalizzato PowerShell chiamato $MyJsonObject
.
Oggetto JSON PowerShell a Stringa JSON
PowerShell offre il cmdlet ConvertTo-Json
, uno strumento prezioso per convertire un oggetto personalizzato esistente in una stringa JSON. Questo processo trasforma efficacemente l’oggetto in una rappresentazione in testo semplice in formato JSON, che può essere ulteriormente utilizzata o archiviata secondo necessità.
Sintassi del cmdlet ConvertTo-Json
:
ConvertTo-Json
[-InputObject] <Object>
[-Depth <Int32>]
[-Compress]
[-EnumsAsStrings]
[-AsArray]
[-EscapeHandling <StringEscapeHandling>]
[<CommonParameters>]
Il cmdlet ConvertTo-Json
fornisce diversi parametri facoltativi per personalizzare il processo di conversione JSON. Ecco una suddivisione di questi parametri:
-
-InputObject
: Questo parametro è fondamentale, poiché designa l’oggetto personalizzato che necessita di conversione in una stringa JSON. Puoi passare direttamente l’oggetto a questo parametro. -
-Depth
: Questo parametro cruciale ti consente di specificare il numero di livelli nella stringa JSON risultante. La profondità indica quanti livelli di oggetti o array annidati saranno inclusi nella stringa JSON.Tuttavia, deve essere usato con giudizio, poiché un uso improprio può portare a perdita di dati. Il valore predefinito è impostato su 2.
-
-Compress
: Questo parametro comprime l’output JSON rimuovendo spazi bianchi e indentazioni non necessarie, risultando in una stringa JSON più compatta. -
-EnumsAsStrings
: Quando utilizzato, questo parametro rappresenta i valori di enumerazione come stringhe nell’output JSON, garantendo compatibilità con i sistemi che potrebbero non gestire bene le enumerazioni numeriche.
-
-AsArray
: Quando specificato, questo parametro formatta l’output come un array JSON, anche se l’oggetto di input non è un array. -
-EscapeHandling
: Questo parametro consente di personalizzare come i caratteri speciali vengono escapati nella stringa JSON, fornendo opzioni comeDefault
,EscapeNonAscii
,EscapeHtml
, eDoNotEscape
.
Per dimostrare l’uso del cmdlet ConvertTo-Json
, consideriamo l’oggetto personalizzato nella sezione precedente ($MyJsonObject
):
Possiamo inviare un oggetto personalizzato al cmdlet ConvertTo-Json
facilmente. Possiamo passare $MyJsonObject
attraverso la pipe (|
) per trasformare l’oggetto personalizzato in una stringa JSON.
$MyJsonObject | ConvertTo-Json
Output:
Dimostriamo ulteriormente l’uso del cmdlet ConvertTo-Json
. Consideriamo un oggetto personalizzato chiamato $AnotherJsonObject
:
$AnotherJsonObject = @{
Name = "John Doe"
Age = 30
IsActive = $true
Hobbies = @("Reading", "Gardening")
Address = @{
Street = "1234 Elm St"
City = "Anytown"
Country = "USA"
}
}
Per convertire questo oggetto in una stringa JSON e visualizzare l’output, utilizza il seguente comando:
$AnotherJsonObject | ConvertTo-Json
L’output di questa trasformazione è una stringa JSON illustrativa che rappresenta l’oggetto personalizzato originale.
{
"Name": "John Doe",
"Age": 30,
"IsActive": true,
"Hobbies": [
"Reading",
"Gardening"
],
"Address": {
"Street": "1234 Elm St",
"City": "Anytown",
"Country": "USA"
}
}
Come possiamo vedere, l’output mostra un oggetto strutturato ($AnotherJsonObject
) che rappresenta informazioni personali come nome, età, stato dell’attività, hobby e dettagli dell’indirizzo di una persona.
Salva la Stringa JSON in un File Utilizzando ConvertTo-Json
e Out-File
Una volta ottenuta una stringa JSON utilizzando il cmdlet ConvertTo-Json
in PowerShell, il passo logico successivo è salvarla in un file per un uso successivo o per la condivisione. Fortunatamente, PowerShell fornisce diversi metodi per farlo, uno dei più semplici è l’uso di Out-File
.
Il cmdlet Out-File
è uno strumento affidabile per salvare la stringa JSON in un file. Di seguito è riportato un esempio che illustra come raggiungere questo obiettivo:
$MyJsonObject | ConvertTo-Json | Out-File -FilePath "D:\path\to\example.json"
Output:
In questo esempio, $MyJsonObject
rappresenta la variabile contenente la stringa JSON generata utilizzando ConvertTo-Json
. La pipeline (|
) quindi passa questa stringa JSON a Out-File
per scriverla in un file.
Il parametro -FilePath
specifica il percorso di destinazione per la stringa JSON. Sostituisci semplicemente "D:\path\to\example.json"
con il percorso di file desiderato in cui intendi salvare il contenuto JSON.
Utilizzando Out-File
in questo modo, pomfi efficacemente i tuoi dati JSON in un file, rendendoli accessibili per un uso futuro o per la condivisione. Questa tecnica semplice ma potente è strumentale nella gestione efficace dei dati JSON all’interno di un ambiente PowerShell.
Salva la Stringa JSON in un File Utilizzando ConvertTo-Json
e Set-Content
Un altro modo per salvare la stringa JSON in un file è utilizzare il cmdlet Set-Content
. Il cmdlet Set-Content
offre un modo diretto per scrivere dati in un file, rendendolo una scelta adatta per salvare una stringa JSON su disco.
Il seguente esempio dimostra questo processo:
$MyJsonObject | ConvertTo-Json | Set-Content -Path "D:\path\to\example.json"
In questo esempio, $MyJsonObject
è la variabile contenente la stringa JSON generata utilizzando ConvertTo-Json
. La pipeline (|
) passa questa stringa JSON a Set-Content
per scriverla in un file.
Il parametro -Path
specifica il percorso di destinazione per la stringa JSON. Sostituisci semplicemente "D:\path\to\example.json"
con il percorso di file desiderato in cui intendi salvare il contenuto JSON.
Salva la Stringa JSON in un File Utilizzando ConvertTo-Json
e Add-Content
Un altro metodo che possiamo utilizzare per salvare una stringa JSON in un file in PowerShell è il cmdlet Add-Content
, che consente di aggiungere la stringa JSON a un file esistente. Il seguente esempio dimostra come raggiungere questo obiettivo:
$MyJsonObject | ConvertTo-Json | Add-Content -Path "D:\path\to\example.json"
In questo esempio, $MyJsonObject
rappresenta la variabile contenente la stringa JSON generata utilizzando ConvertTo-Json
. La pipeline (|
) passa questa stringa JSON a Add-Content
per aggiungerla a un file specificato dal parametro -Path
.
Il parametro -Path
indica il file a cui la stringa JSON sarà aggiunta. Sostituisci semplicemente "D:\path\to\example.json"
con il percorso di file desiderato in cui intendi aggiungere il contenuto JSON.
Il cmdlet Add-Content
offre un modo conveniente per aggiungere o appendere contenuti a un file senza sovrascrivere i dati esistenti. Questo è particolarmente utile quando si trattano stringhe JSON che devono essere aggiornate o estese nel tempo.
Conclusione
Quest’articolo ha dimostrato il processo di conversione di oggetti PowerShell in stringhe JSON e il salvataggio in file utilizzando il cmdlet ConvertTo-Json
, insieme ad altri cmdlet per la gestione dei file come Out-File
, Set-Content
e Add-Content
.
Sfruttando questi strumenti, gli utenti possono gestire i dati JSON in modo efficiente, consentendo una gestione dei dati semplificata, la condivisione e l’integrazione con diverse applicazioni e sistemi.
Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.