ConvertTo-Json
Egy objektumot JSON-formátumú sztringgé alakít át.
Syntax
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.
Feljegyzés
A PowerShell 7.2-es verziójától kezdve a DateTime- és sztringobjektumok kiterjesztett típusú rendszertulajdonsá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-ben figyelmeztetést ad ki, ConvertTo-Json
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 az AsArray kapcsolóparaméterrel és anélkül készült parancsmag kimenetét ConvertTo-Json
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 Tömörítés paraméter ConvertTo-Json
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 egy JSON-formátumú sztringgé. A parancs a Select-Object
parancsmaggal lekéri a DateTime objektum összes tulajdonságát (*
). A kimenet a visszaadott JSON-sztringet jeleníti meg ConvertTo-Json
.
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 parancsmagok és ConvertFrom-Json
parancsmagok ConvertTo-Json
használatával.
Paraméterek
-AsArray
Az objektumot tömbkonzolokban adja ki, még akkor is, ha a bemenet egyetlen objektum.
Típus: | SwitchParameter |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-Compress
Kihagyja a szóközt és a behúzott formázást a kimeneti sztringben.
Típus: | SwitchParameter |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-Depth
Megadja, hogy hány szint tartalmazott objektumokat a JSON-ábrázolásban. Az érték tetszőleges szám 0
100
lehet. Az alapértelmezett érték 2
. ConvertTo-Json
figyelmeztetést ad ki, ha egy bemeneti objektum szintjeinek száma meghaladja ezt a számot.
Típus: | Int32 |
Position: | Named |
Alapértelmezett érték: | 2 |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | 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.
Típus: | SwitchParameter |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | 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 – A HTML (
<
,>
, ,&
,'
)"
és a vezérlőkarakterek feloldódnak.
Ez a paraméter a PowerShell 6.2-ben lett bevezetve.
Típus: | Newtonsoft.Json.StringEscapeHandling |
Position: | Named |
Alapértelmezett érték: | Default |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | 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. Egy objektumot is becsúszthat a parancsba ConvertTo-Json
.
Az InputObject paraméter megadása kötelező, de értéke lehet null ($null
) vagy üres sztring.
Ha a bemeneti objektum az $null
, ConvertTo-Json
a JSON-reprezentációt null
adja vissza. Ha a bemeneti objektum egy üres sztring, ConvertTo-Json
egy üres sztring JSON-ábrázolását adja vissza.
Típus: | Object |
Position: | 0 |
Alapértelmezett érték: | None |
Kötelező: | True |
Folyamatbemenet elfogadása: | True |
Helyettesítő karakterek elfogadása: | False |
Bevitelek
A parancsmaghoz bármilyen objektumot csövezhet.
Kimenetek
Ez a parancsmag egy JSON-sztringgé konvertált bemeneti objektumot képviselő sztringet ad vissza.
Jegyzetek
A ConvertTo-Json
parancsmag a Newtonsoft Json.NET használatával lett implementálva.