Delen via


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

String

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.