ConvertFrom-Json
Converte una stringa in formato JSON in un oggetto personalizzato.
Sintassi
ConvertFrom-Json
[-InputObject] <String>
[<CommonParameters>]
Descrizione
Il ConvertFrom-Json
cmdlet converte una stringa json (JavaScript Object Notation) formattata in un oggetto PSCustomObject personalizzato con una proprietà per ogni campo nella stringa JSON. Il formato JSON è comunemente usato dai siti Web per fornire una rappresentazione testuale di oggetti. Lo standard JSON non impedisce l'utilizzo vietato con un PSCustomObject. Ad esempio, se la stringa JSON contiene chiavi duplicate, viene usata solo l'ultima chiave da questo cmdlet. Vedere altri esempi di seguito.
Per generare una stringa JSON da qualsiasi oggetto, usare il ConvertTo-Json
cmdlet.
Questo cmdlet è stato introdotto in PowerShell 3.0.
Nota
Questo cmdlet non supporta JSON con commenti.
Esempio
Esempio 1: Convertire un oggetto DateTime in un oggetto JSON
Questo comando usa i ConvertTo-Json
cmdlet e ConvertFrom-Json
per convertire un oggetto DateTime dal Get-Date
cmdlet a un oggetto JSON e quindi in un PSCustomObject.
Get-Date | Select-Object -Property * | ConvertTo-Json | ConvertFrom-Json
DisplayHint : 2
DateTime : Friday, January 13, 2012 8:06:31 PM
Date : 1/13/2012 8:00:00 AM
Day : 13
DayOfWeek : 5
DayOfYear : 13
Hour : 20
Kind : 2
Millisecond : 400
Minute : 6
Month : 1
Second : 31
Ticks : 634620819914009002
TimeOfDay : @{Ticks=723914009002; Days=0; Hours=20; Milliseconds=400; Minutes=6; Seconds=31; TotalDays=0.83786343634490734; TotalHours=20.108722472277776; TotalMilliseconds=72391400.900200009; TotalMinutes=1206.5233483366667;TotalSeconds=72391.4009002}
Year : 2012
Nell'esempio viene usato il Select-Object
cmdlet per ottenere tutte le proprietà dell'oggetto DateTime . Usa il ConvertTo-Json
cmdlet per convertire l'oggetto DateTime in una stringa formattata come oggetto JSON e il ConvertFrom-Json
cmdlet per convertire la stringa formattata JSON in un oggetto PSCustomObject .
Esempio 2: Ottenere stringhe JSON da un servizio Web e convertirle in oggetti PowerShell
Questo comando usa il cmdlet per ottenere stringhe JSON da un servizio Web e quindi usa il Invoke-WebRequest
ConvertFrom-Json
cmdlet per convertire il contenuto JSON in oggetti che possono essere gestiti in PowerShell.
# Ensures that Invoke-WebRequest uses TLS 1.2
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$j = Invoke-WebRequest 'https://api.github.com/repos/PowerShell/PowerShell/issues' | ConvertFrom-Json
È anche possibile usare il cmdlet, che converte automaticamente contenuto Invoke-RestMethod
JSON in oggetti.
Esempio 3: Convertire una stringa JSON in un oggetto personalizzato
In questo esempio viene illustrato come usare il ConvertFrom-Json
cmdlet per convertire un file JSON in un oggetto personalizzato di PowerShell.
Get-Content JsonFile.JSON | ConvertFrom-Json
Il comando usa Get-Content cmdlet per ottenere le stringhe in un file JSON. Usa quindi l'operatore della pipeline per inviare la stringa delimitata al ConvertFrom-Json
cmdlet, che lo converte in un oggetto personalizzato.
Parametri
-InputObject
Specifica le stringhe JSON da convertire in oggetti JSON. Immettere una variabile che contiene la stringa o digitare un comando o un'espressione che ottiene la stringa. È anche possibile inviare una pipe a una stringa in ConvertFrom-Json
.
Il parametro InputObject è obbligatorio, ma il relativo valore può essere una stringa vuota. Quando l'oggetto di input è una stringa vuota, ConvertFrom-Json
non genera alcun output. Il valore InputObject non può essere $null
.
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Input
È possibile inviare una pipe a una stringa JSON in ConvertFrom-Json
.
Output
PSCustomObject
Note
Il ConvertFrom-Json
cmdlet viene implementato usando la classe JavaScriptSerializer.