ConvertFrom-Json
JSON formátumú sztringet alakít át egyéni objektummá.
Syntax
Default (Alapértelmezett)
ConvertFrom-Json
[-InputObject] <String>
[<CommonParameters>]
Description
A ConvertFrom-Json parancsmag egy JavaScript Object Notation (JSON) formátumú karakterláncot alakít át egyéni PSObject vagy Hash-tábla objektummá, amelyben minden mezőhöz tartozik egy tulajdonság a JSON karakterláncban.
A JSON-t gyakran használják a webhelyek az objektumok szöveges ábrázolására. A parancsmag hozzáadja a tulajdonságokat az új objektumhoz, miközben feldolgozza a JSON-sztring egyes sorait.
A JSON szabvány lehetővé teszi a duplikált kulcsneveket, amelyek PSObject és kivonatoló típusok esetében tilosak. Ha például a JSON-sztring ismétlődő kulcsokat tartalmaz, a parancsmag csak az utolsó kulcsot használja. Lásd az alábbi példákat.
Ha JSON-sztringet szeretne létrehozni bármely objektumból, használja a ConvertTo-Json parancsmagot.
Ezt a parancsmagot a PowerShell 3.0-ban vezettük be.
Megjegyzés:
A Windows PowerShell 5.1-ben ConvertFrom-Json hibát ad vissza, amikor JSON-megjegyzést talál. A PowerShell 6-os és újabb verzióiban a parancsmag támogatja a JSON-t megjegyzésekkel. A JSON-megjegyzéseket a parancsmag nem rögzíti az objektumok kimenetében. További információt a about_Comments cikk JSON-megjegyzések szakaszában talál.
Példák
1. példa: DateTime-objektum átalakítása JSON-objektummá
Ez a parancs a ConvertTo-Json és ConvertFrom-Json cmdletek segítségével először egy cmdletból származó Get-Date objektumot JSON-objektummá, majd egy PSCustomObject-vé konvertál.
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
A példa a Select-Object parancsmaggal lekéri a DateTime objektum összes tulajdonságát. A ConvertTo-Json parancsmaggal konvertálja a DateTime objektumot JSON-objektumként formázott sztringgé, a ConvertFrom-Json parancsmag pedig a JSON-formátumú sztringet PSCustomObject objektummá alakítja.
2. példa: JSON-sztringek lekérése egy webszolgáltatásból, és powerShell-objektumokká alakítása
Ez a parancs a Invoke-WebRequest parancsmaggal lekéri a JSON-sztringeket egy webszolgáltatásból, majd a ConvertFrom-Json parancsmaggal konvertálja a JSON-tartalmat a PowerShellben kezelhető objektumokká.
# 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
Használhatja a Invoke-RestMethod parancsmagot is, amely automatikusan objektummá alakítja a JSON-tartalmat.
3. példa: JSON-sztring átalakítása egyéni objektummá
Ez a példa bemutatja, hogyan konvertálhat JSON-fájlokat egyéni PowerShell-objektummá a ConvertFrom-Json parancsmaggal.
Get-Content -Raw JsonFile.json | ConvertFrom-Json
A parancs a Get-Content parancsmagot használja, hogy kinyerje a sztringeket egy JSON-fájlban. A Raw paraméter a teljes fájlt egyetlen JSON-objektumként adja vissza. Ezután a folyamatkezelővel elküldi a tagolt sztringet a ConvertFrom-Json parancsmagnak, amely egyéni objektummá alakítja.
Paraméterek
-InputObject
Megadja a JSON-objektumokká konvertálandó JSON-sztringeket. Adjon meg egy változót, amely tartalmazza a sztringet, vagy írjon be egy parancsot vagy kifejezést, amely lekéri a sztringet. Karakterláncot is továbbíthat a ConvertFrom-Json-ra.
Az InputObject paraméter megadása kötelező, de értéke lehet üres sztring. Ha a bemeneti objektum üres sztring, ConvertFrom-Json nem hoz létre kimenetet. Az InputObject értéke nem $null.
Paramétertulajdonságok
| Típus: | String |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
(All)
| Position: | 0 |
| Kötelező: | True |
| Folyamatból származó érték: | True |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
CommonParameters
Ez a parancsmag a következő gyakori paramétereket támogatja: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction és -WarningVariable. További információért lásd about_CommonParameters.
Bevitelek
String
Küldhetsz egy JSON-sztringet a ConvertFrom-Json-ba.
Kimenetek
PSCustomObject
Jegyzetek
A ConvertFrom-Json parancsmag a JavaScriptSerializer osztály használatával van megvalósítva.
A PSObject típus a JSON-sztringben bemutatott tulajdonságok sorrendjét tartja karban. Bár a kulcs-érték párok a JSON karakterláncban megadott sorrendben vannak hozzáadva a Hashtable-hez, a Hashtable objektumok nem tartják fenn ezt a sorrendet.