ConvertFrom-Json
Converteert een tekenreeks met JSON-indeling naar een aangepast object.
Syntaxis
ConvertFrom-Json
[-InputObject] <String>
[<CommonParameters>]
Description
Met de ConvertFrom-Json
-cmdlet wordt een tekenreeks met JSON-indeling (JavaScript Object Notation) geconverteerd naar een aangepaste PSCustomObject-object met een eigenschap voor elk veld in de JSON-tekenreeks. JSON wordt vaak gebruikt door websites om een tekstuele weergave van objecten te bieden. De JSON-standaard verbiedt het gebruik dat niet is verboden met een PSCustomObject. Als de JSON-tekenreeks bijvoorbeeld dubbele sleutels bevat, wordt alleen de laatste sleutel gebruikt door deze cmdlet. Zie andere voorbeelden hieronder.
Als u een JSON-tekenreeks wilt genereren op basis van een object, gebruikt u de cmdlet ConvertTo-Json
.
Deze cmdlet is geïntroduceerd in PowerShell 3.0.
Notitie
Deze cmdlet biedt geen ondersteuning voor JSON met opmerkingen.
Voorbeelden
Voorbeeld 1: Een DateTime-object converteren naar een JSON-object
Met deze opdracht worden de cmdlets ConvertTo-Json
en ConvertFrom-Json
gebruikt om een DateTime--object van de cmdlet Get-Date
te converteren naar een JSON-object en vervolgens naar een 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
In het voorbeeld wordt de cmdlet Select-Object
gebruikt om alle eigenschappen van het DateTime--object op te halen. De cmdlet ConvertTo-Json
wordt gebruikt om het DateTime--object te converteren naar een tekenreeks die is opgemaakt als een JSON-object en de ConvertFrom-Json
-cmdlet om de tekenreeks met JSON-indeling te converteren naar een PSCustomObject-object.
Voorbeeld 2: JSON-tekenreeksen ophalen uit een webservice en deze converteren naar PowerShell-objecten
Met deze opdracht wordt de Invoke-WebRequest
-cmdlet gebruikt om JSON-tekenreeksen op te halen uit een webservice. Vervolgens wordt de cmdlet ConvertFrom-Json
gebruikt om JSON-inhoud te converteren naar objecten die kunnen worden beheerd 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
U kunt ook de Invoke-RestMethod
-cmdlet gebruiken, waarmee JSON-inhoud automatisch wordt geconverteerd naar objecten.
Voorbeeld 3: Een JSON-tekenreeks converteren naar een aangepast object
In dit voorbeeld ziet u hoe u de ConvertFrom-Json
-cmdlet gebruikt om een JSON-bestand te converteren naar een aangepast PowerShell-object.
Get-Content JsonFile.JSON | ConvertFrom-Json
De opdracht gebruikt Get-Content cmdlet om de tekenreeksen op te halen in een JSON-bestand. Vervolgens wordt de pijplijnoperator gebruikt om de tekenreeks met scheidingstekens te verzenden naar de ConvertFrom-Json
-cmdlet, waarmee deze wordt geconverteerd naar een aangepast object.
Parameters
-InputObject
Hiermee geeft u de JSON-tekenreeksen op die moeten worden geconverteerd naar JSON-objecten. Voer een variabele in die de tekenreeks bevat of typ een opdracht of expressie die de tekenreeks ophaalt. U kunt ook een tekenreeks doorspezen naar ConvertFrom-Json
.
De parameter InputObject is vereist, maar de waarde kan een lege tekenreeks zijn. Wanneer het invoerobject een lege tekenreeks is, genereert ConvertFrom-Json
geen uitvoer. De InputObject--waarde kan niet worden $null
.
Type: | String |
Position: | 0 |
Default value: | None |
Vereist: | True |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | False |
Invoerwaarden
U kunt een JSON-tekenreeks doorsluisen naar ConvertFrom-Json
.
Uitvoerwaarden
PSCustomObject
Notities
De ConvertFrom-Json
cmdlet wordt geïmplementeerd met behulp van de JavaScriptSerializer-klasse.