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-Jsonmutatja 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-Jsonhaszná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.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Compress

Kihagyja a szóközt és a behúzott formázást a kimeneti sztringben.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Depth

Megadja, hogy hány szint tartalmazott objektumokat a JSON-ábrázolásban. Az érték tetszőleges szám 0100lehet. Az alapértelmezett érték 2. ConvertTo-Json figyelmeztetést ad ki, ha egy bemeneti objektum szintjeinek száma meghaladja ezt a számot.

Type:Int32
Position:Named
Default value:2
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:Newtonsoft.Json.StringEscapeHandling
Position:Named
Default value:Default
Required:False
Accept pipeline input:False
Accept wildcard characters: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 nulladja vissza. Ha a bemeneti objektum egy üres sztring, ConvertTo-Json egy üres sztring JSON-ábrázolását adja vissza.

Type:Object
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

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 a Newtonsoft Json.NET használatával lett implementálva.