ConvertTo-Json
Converteert een object naar een tekenreeks met JSON-indeling.
Syntaxis
ConvertTo-Json
[-InputObject] <Object>
[-Depth <Int32>]
[-Compress]
[-EnumsAsStrings]
[-AsArray]
[-EscapeHandling <StringEscapeHandling>]
[<CommonParameters>]
Description
Met de ConvertTo-Json
cmdlet wordt een .NET-object geconverteerd naar een tekenreeks in JSON-indeling (JavaScript Object Notation). De eigenschappen worden geconverteerd naar veldnamen, de veldwaarden worden geconverteerd naar eigenschapswaarden en de methoden worden verwijderd.
Notitie
Vanaf PowerShell 7.2 worden uitgebreide systeemeigenschappen van datum/tijd - en tekenreeksobjecten niet meer geserialiseerd en wordt alleen het eenvoudige object geconverteerd naar JSON-indeling
Vervolgens kunt u de ConvertFrom-Json
cmdlet gebruiken om een tekenreeks met JSON-indeling te converteren naar een JSON-object, dat eenvoudig wordt beheerd in PowerShell.
Veel websites gebruiken JSON in plaats van XML om gegevens te serialiseren voor communicatie tussen servers en web-apps.
Vanaf PowerShell 7.1 ConvertTo-Json
wordt een waarschuwing verzonden als de diepte van het invoerobject de opgegeven diepte voor de opdracht overschrijdt. Dit voorkomt ongewenst gegevensverlies bij het converteren van objecten.
Deze cmdlet is geïntroduceerd in Windows PowerShell 3.0.
Voorbeelden
Voorbeeld 1
(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
}
Met deze opdracht wordt de ConvertTo-Json
cmdlet gebruikt om een GregorianCalendar-object te converteren naar een tekenreeks met JSON-indeling.
Voorbeeld 2
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"
]
In dit voorbeeld ziet u de uitvoer van ConvertTo-Json
de cmdlet met en zonder de parameter AsArray-switch . U kunt zien dat het tweede gedeelte van de uitvoer tussen vierkante haken van matrices is verpakt.
Voorbeeld 3
@{Account="User01";Domain="Domain01";Admin="True"} | ConvertTo-Json -Compress
{"Domain":"Domain01","Account":"User01","Admin":"True"}
Met deze opdracht wordt het effect weergegeven van het gebruik van de parameter Comprimeren van ConvertTo-Json
. De compressie is alleen van invloed op het uiterlijk van de tekenreeks, niet op de geldigheid ervan.
Voorbeeld 4
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
}
In dit voorbeeld wordt de ConvertTo-Json
cmdlet gebruikt om een System.DateTime-object van de Get-Date
cmdlet te converteren naar een tekenreeks met JSON-indeling. De opdracht gebruikt de Select-Object
cmdlet om alle (*
) eigenschappen van het DateTime-object op te halen. De uitvoer toont de JSON-tekenreeks die ConvertTo-Json
is geretourneerd.
Voorbeeld 5
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
In dit voorbeeld ziet u hoe u de ConvertTo-Json
en ConvertFrom-Json
cmdlets gebruikt om een object te converteren naar een JSON-tekenreeks en een JSON-object.
Parameters
-AsArray
Hiermee wordt het object uitgevoerd tussen matrices, zelfs als de invoer één object is.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-Compress
Hiermee wordt witruimte en ingesprongen opmaak weggelaten in de uitvoertekenreeks.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-Depth
Hiermee geeft u op hoeveel niveaus van ingesloten objecten worden opgenomen in de JSON-weergave. De waarde kan een willekeurig getal van 0
tot 100
. De standaardwaarde is 2
. ConvertTo-Json
verzendt een waarschuwing als het aantal niveaus in een invoerobject dit aantal overschrijdt.
Type: | Int32 |
Position: | Named |
Default value: | 2 |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-EnumsAsStrings
Biedt een alternatieve serialisatieoptie waarmee alle opsommingen worden geconverteerd naar de tekenreeksweergave.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-EscapeHandling
Hiermee bepaalt u hoe bepaalde tekens worden ontsnapt in de resulterende JSON-uitvoer. Standaard worden alleen besturingstekens (zoals nieuwe regel) geactiveerd.
Acceptabele waarden zijn:
- Standaard: alleen besturingstekens worden ontsnapt.
- EscapeNonAscii - Alle niet-ASCII- en besturingstekens worden ontsnapt.
- EscapeHtml - HTML (
<
,>
,&
,'
, )"
en besturingstekens worden ontsnapt.
Deze parameter is geïntroduceerd in PowerShell 6.2.
Type: | Newtonsoft.Json.StringEscapeHandling |
Position: | Named |
Default value: | Default |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-InputObject
Hiermee geeft u de objecten die moeten worden geconverteerd naar JSON-indeling. Voer een variabele in die de objecten bevat of typ een opdracht of expressie waarmee de objecten worden opgehaald. U kunt ook een object doorsluisen naar ConvertTo-Json
.
De parameter InputObject is vereist, maar de waarde kan null ($null
) of een lege tekenreeks zijn.
Wanneer het invoerobject is $null
, ConvertTo-Json
wordt de JSON-weergave van null
. Wanneer het invoerobject een lege tekenreeks is, ConvertTo-Json
wordt de JSON-weergave van een lege tekenreeks geretourneerd.
Type: | Object |
Position: | 0 |
Default value: | None |
Vereist: | True |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | False |
Invoerwaarden
U kunt elk object doorsluisen naar deze cmdlet.
Uitvoerwaarden
Met deze cmdlet wordt een tekenreeks geretourneerd die het invoerobject vertegenwoordigt dat is geconverteerd naar een JSON-tekenreeks.
Notities
De ConvertTo-Json
cmdlet wordt geïmplementeerd met Newtonsoft Json.NET.