ConvertTo-Json
Konvertiert ein Objekt in eine JSON-formatierte Zeichenfolge.
Syntax
ConvertTo-Json
[-InputObject] <Object>
[-Depth <Int32>]
[-Compress]
[<CommonParameters>]
Beschreibung
Das cmdlet ConvertTo-Json
konvertiert jedes .NET-Objekt in eine Zeichenfolge im JSON-Format (JavaScript Object Notation). Die Eigenschaften werden in Feldnamen konvertiert, die Feldwerte werden in Eigenschaftswerte konvertiert, und die Methoden werden entfernt.
Anschließend können Sie das cmdlet ConvertFrom-Json
verwenden, um eine JSON-formatierte Zeichenfolge in ein JSON-Objekt zu konvertieren, das einfach in PowerShell verwaltet wird.
Viele Websites verwenden JSON anstelle von XML, um Daten für die Kommunikation zwischen Servern und webbasierten Apps zu serialisieren.
Dieses Cmdlet wurde in Windows PowerShell 3.0 eingeführt.
Beispiele
Beispiel 1
(Get-UICulture).Calendar | ConvertTo-Json
{
"MinSupportedDateTime": "\/Date(-62135596800000)\/",
"MaxSupportedDateTime": "\/Date(253402300799999)\/",
"AlgorithmType": 1,
"CalendarType": 1,
"Eras": [
1
],
"TwoDigitYearMax": 2029,
"IsReadOnly": false
}
Dieser Befehl verwendet das Cmdlet ConvertTo-Json
, um ein GregorianCalendar-Objekt in eine JSON-formatierte Zeichenfolge zu konvertieren.
Beispiel 2
@{Account="User01";Domain="Domain01";Admin="True"} | ConvertTo-Json -Compress
{"Domain":"Domain01","Account":"User01","Admin":"True"}
Dieser Befehl zeigt die Auswirkung der Verwendung des Compress-Parameters von ConvertTo-Json
. Die Komprimierung wirkt sich nur auf das Erscheinungsbild der Zeichenfolge und nicht auf ihre Gültigkeit aus.
Beispiel 3
Get-Date | Select-Object -Property * | ConvertTo-Json
{
"DisplayHint": 2,
"DateTime": "Friday, January 13, 2012 8:06:16 PM",
"Date": "\/Date(1326441600000)\/",
"Day": 13,
"DayOfWeek": 5,
"DayOfYear": 13,
"Hour": 20,
"Kind": 2,
"Millisecond": 221,
"Minute": 6,
"Month": 1,
"Second": 16,
"Ticks": 634620819762218083,
"TimeOfDay": {
"Ticks": 723762218083,
"Days": 0,
"Hours": 20,
"Milliseconds": 221,
"Minutes": 6,
"Seconds": 16,
"TotalDays": 0.83768775241087956,
"TotalHours": 20.104506057861109,
"TotalMilliseconds": 72376221.8083,
"TotalMinutes": 1206.2703634716668,
"TotalSeconds": 72376.22180829999
},
"Year": 2012
}
In diesem Beispiel wird das cmdlet ConvertTo-Json
verwendet, um ein System.DateTime--Objekt aus dem Cmdlet Get-Date
in eine JSON-formatierte Zeichenfolge zu konvertieren. Der Befehl verwendet das cmdlet Select-Object
, um alle (*
) der Eigenschaften des DateTime--Objekts abzurufen. Die Ausgabe zeigt die JSON-Zeichenfolge, die zurückgegeben ConvertTo-Json
.
Beispiel 4
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 diesem Beispiel wird gezeigt, wie Sie die cmdlets ConvertTo-Json
und ConvertFrom-Json
verwenden, um ein Objekt in eine JSON-Zeichenfolge und ein JSON-Objekt zu konvertieren.
Parameter
-Compress
Lässt Leerzeichen aus und eingezogene Formatierungen in der Ausgabezeichenfolge aus.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Depth
Gibt an, wie viele Ebenen von enthaltenen Objekten in der JSON-Darstellung enthalten sind. Der Wert kann eine beliebige Zahl zwischen 1
und 100
sein. Der Standardwert ist 2
.
ConvertTo-Json
gibt eine Warnung aus, wenn die Anzahl der Ebenen in einem Eingabeobjekt diese Zahl überschreitet.
Typ: | Int32 |
Position: | Named |
Standardwert: | 2 |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-InputObject
Gibt die Objekte an, die in das JSON-Format konvertiert werden sollen. Geben Sie eine Variable ein, die die Objekte enthält, oder geben Sie einen Befehl oder Ausdruck ein, der die Objekte abruft. Sie können ein Objekt auch an ConvertTo-Json
pfeifen.
Der parameter InputObject ist erforderlich, sein Wert kann jedoch null ($null
) oder eine leere Zeichenfolge sein.
Wenn das Eingabeobjekt $null
ist, generiert ConvertTo-Json
keine Ausgabe. Wenn das Eingabeobjekt eine leere Zeichenfolge ist, gibt ConvertTo-Json
eine leere Zeichenfolge zurück.
Typ: | Object |
Position: | 0 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
Eingaben
Sie können jedes Objekt an dieses Cmdlet weiterleiten.
Ausgaben
Dieses Cmdlet gibt eine Zeichenfolge zurück, die das in eine JSON-Zeichenfolge konvertierte Eingabeobjekt darstellt.
Hinweise
Das cmdlet ConvertTo-Json
wird mithilfe der JavaScriptSerializer-Klasseimplementiert.