ConvertTo-Json
Egy objektumot JSON-formátumú sztringgé alakít át.
Syntax
Default (Alapértelmezett)
ConvertTo-Json
[-InputObject] <Object>
[-Depth <Int32>]
[-Compress]
[-EnumsAsStrings]
[-AsArray]
[-EscapeHandling <StringEscapeHandling>]
[<CommonParameters>]
Description
A ConvertTo-Json parancsmag minden .NET-objektumot JavaScript Object Notation (JSON) formátumú sztringgé alakít át. A tulajdonságok mezőnevekké lesznek konvertálva, a mezőértékek tulajdonságértékekké alakulnak, és a metódusok törlődnek.
Megjegyzés:
A PowerShell 7.2-es verziójától kezdve a DateTime és Sztring objektumok kiterjesztett típusrendszer-tulajdonságai már nem szerializáltak, és csak az egyszerű objektum lesz JSON-formátumba konvertálva
Ezután a ConvertFrom-Json parancsmaggal JSON formátumú sztringet alakíthat át JSON-objektummá, amely a PowerShellben könnyen kezelhető.
Sok webhely az XML helyett JSON-t használ az adatok szerializálására a kiszolgálók és a webalapú alkalmazások közötti kommunikációhoz.
A PowerShell 7.1-ről ConvertTo-Json figyelmeztetést ad ki, ha a bemeneti objektum mélysége meghaladja a parancshoz megadott mélységet. Ez megakadályozza a nemkívánatos adatvesztést az objektumok konvertálása során.
Ezt a parancsmagot a Windows PowerShell 3.0-ban vezettük be.
Példák
1. példa
(Get-UICulture).Calendar | ConvertTo-Json
{
"MinSupportedDateTime": "0001-01-01T00:00:00",
"MaxSupportedDateTime": "9999-12-31T23:59:59.9999999",
"AlgorithmType": 1,
"CalendarType": 1,
"Eras": [
1
],
"TwoDigitYearMax": 2029,
"IsReadOnly": true
}
Ez a parancs a ConvertTo-Json parancsmaggal konvertál egy GregorianCalendar objektumot JSON-formátumú sztringgé.
2. példa
Get-Date | ConvertTo-Json; Get-Date | ConvertTo-Json -AsArray
"2021-08-05T16:13:05.6394416-07:00"
[
"2021-08-05T16:13:05.6421709-07:00"
]
Ez a példa ConvertTo-JsonAsArray kapcsolóparaméterrel és anélkül készült parancsmag kimenetét mutatja be. Láthatja, hogy a kimenet második része tömbkonzolokba van csomagolva.
3. példa
@{Account="User01";Domain="Domain01";Admin="True"} | ConvertTo-Json -Compress
{"Domain":"Domain01","Account":"User01","Admin":"True"}
Ez a parancs a ConvertTo-Json paraméterének használatát mutatja be. A tömörítés csak a sztring megjelenését befolyásolja, érvényességét nem.
4. példa
Get-Date | Select-Object -Property * | ConvertTo-Json
{
"DisplayHint": 2,
"DateTime": "October 12, 2018 10:55:32 PM",
"Date": "2018-10-12T00:00:00-05:00",
"Day": 12,
"DayOfWeek": 5,
"DayOfYear": 285,
"Hour": 22,
"Kind": 2,
"Millisecond": 639,
"Minute": 55,
"Month": 10,
"Second": 32,
"Ticks": 636749817326397744,
"TimeOfDay": {
"Ticks": 825326397744,
"Days": 0,
"Hours": 22,
"Milliseconds": 639,
"Minutes": 55,
"Seconds": 32,
"TotalDays": 0.95523888627777775,
"TotalHours": 22.925733270666665,
"TotalMilliseconds": 82532639.774400011,
"TotalMinutes": 1375.54399624,
"TotalSeconds": 82532.6397744
},
"Year": 2018
}
Ez a példa a ConvertTo-Json parancsmaggal konvertál egy System.DateTime objektumot a Get-Date parancsmagból JSON formátumú sztringgé. A parancs a Select-Object parancsmaggal lekéri az * objektum tulajdonságainak összes () tulajdonságát. A kimenet az ConvertTo-Json visszaadott JSON-sztringet jeleníti meg.
5. példa
Get-Date | Select-Object -Property * | ConvertTo-Json | ConvertFrom-Json
DisplayHint : 2
DateTime : October 12, 2018 10:55:52 PM
Date : 2018-10-12 12:00:00 AM
Day : 12
DayOfWeek : 5
DayOfYear : 285
Hour : 22
Kind : 2
Millisecond : 768
Minute : 55
Month : 10
Second : 52
Ticks : 636749817527683372
TimeOfDay : @{Ticks=825527683372; Days=0; Hours=22; Milliseconds=768; Minutes=55; Seconds=52;
TotalDays=0.95547185575463; TotalHours=22.9313245381111; TotalMilliseconds=82552768.3372;
TotalMinutes=1375.87947228667; TotalSeconds=82552.7683372}
Year : 2018
Ez a példa bemutatja, hogyan konvertálhat egy objektumot JSON-sztringgé és JSON-objektummá a ConvertTo-Json és ConvertFrom-Json parancsmagokkal.
Paraméterek
-AsArray
Az objektumot tömbkonzolokban adja ki, még akkor is, ha a bemenet egyetlen objektum.
Paramétertulajdonságok
| Típus: | SwitchParameter |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
(All)
| Position: | Named |
| Kötelező: | False |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
-Compress
Kihagyja a szóközt és a behúzott formázást a kimeneti sztringben.
Paramétertulajdonságok
| Típus: | SwitchParameter |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
(All)
| Position: | Named |
| Kötelező: | False |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
-Depth
Megadja, hogy hány szint tartalmazott objektumokat a JSON-ábrázolásban. Az érték a 0 és 100közötti tetszőleges szám lehet. Az alapértelmezett érték a 2.
ConvertTo-Json figyelmeztetést ad ki, ha egy bemeneti objektum szintjeinek száma meghaladja ezt a számot.
Paramétertulajdonságok
| Típus: | Int32 |
| Alapértelmezett érték: | 2 |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
(All)
| Position: | Named |
| Kötelező: | False |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
-EnumsAsStrings
Alternatív szerializálási lehetőséget biztosít, amely az összes számbavételt a sztring-ábrázolásukká alakítja.
Paramétertulajdonságok
| Típus: | SwitchParameter |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
(All)
| Position: | Named |
| Kötelező: | False |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
-EscapeHandling
Szabályozza, hogy egyes karakterek hogyan legyenek feloldva az eredményül kapott JSON-kimenetben. Alapértelmezés szerint csak a vezérlőkarakterek (például az új vonal) kerülnek ki.
Az elfogadható értékek a következők:
- Alapértelmezett – Csak a vezérlőkarakterek vannak feloldva.
- EscapeNonAscii – Minden nem ASCII- és vezérlőkarakterek megmenekülnek.
- EscapeHtml - HTML (
<,>,&,',") és vezérlőkarakterek szöknek meg.
Ez a paraméter a PowerShell 6.2-ben lett bevezetve.
Paramétertulajdonságok
| Típus: | Newtonsoft.Json.StringEscapeHandling |
| Alapértelmezett érték: | Default |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
(All)
| Position: | Named |
| Kötelező: | False |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
-InputObject
Meghatározza azokat az objektumokat, amelyeket JSON formátumba szeretne konvertálni. Adjon meg egy változót, amely tartalmazza az objektumokat, vagy írjon be egy parancsot vagy kifejezést, amely lekéri az objektumokat. Az objektumokat ConvertTo-Jsonis becsúszthatja.
Az InputObject paraméter megadása kötelező, de értéke lehet null ($null) vagy üres sztring.
Ha a bemeneti objektum $null, ConvertTo-Json a nullJSON-ábrázolását adja vissza. Ha a bemeneti objektum üres sztring, ConvertTo-Json egy üres sztring JSON-ábrázolását adja vissza.
Paramétertulajdonságok
| Típus: | Object |
| 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
Object
A parancsmaghoz bármilyen objektumot csövezhet.
Kimenetek
String
Ez a parancsmag egy JSON-sztringgé konvertált bemeneti objektumot képviselő sztringet ad vissza.
Jegyzetek
A ConvertTo-Json parancsmag Newtonsoft Json.NEThasználatával lett implementálva.