Megosztás a következőn keresztül:


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.