ConvertTo-Json
Konvertiert ein Objekt in eine JSON-formatierte Zeichenfolge.
Syntax
Default (Standard)
ConvertTo-Json
[-InputObject] <Object>
[-Depth <Int32>]
[-Compress]
[<CommonParameters>]
Beschreibung
Das Cmdlet ConvertTo-Json konvertiert jedes 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 in Windows PowerShell einfach verwaltet werden kann.
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
PS C:\> (Get-UICulture).Calendar | ConvertTo-Json
{
"MinSupportedDateTime": "\/Date(-62135596800000)\/",
"MaxSupportedDateTime": "\/Date(253402300799999)\/",
"AlgorithmType": 1,
"CalendarType": 1,
"Eras": [
1
],
"TwoDigitYearMax": 2029,
"IsReadOnly": false
}
In diesem Beispiel wird das Cmdlet ConvertTo-Json verwendet, um ein GregorianCalendar-Objekt in eine JSON-formatierte Zeichenfolge zu konvertieren.
Beispiel 2
PS C:\> @{Account="User01";Domain="Domain01";Admin="True"} | ConvertTo-Json -Compress
{"Admin":"True","Account":"User01","Domain":"Domain01"}
In diesem Beispiel wird gezeigt, wie sich die Verwendung des -Compress Parameters ConvertTo-Json auswirkt.
Die Komprimierung wirkt sich nur auf das Erscheinungsbild der Zeichenfolge und nicht auf ihre Gültigkeit aus.
Beispiel 3
PS C:\> 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* Eigenschaften () des DateTime-Objekts abzurufen. Die Ausgabe zeigt die JSON-Zeichenfolge, die ConvertTo-Json zurückgegeben hat.
Beispiel 4
PS C:\> Get-Date | Select-Object -Property * | ConvertTo-Json | ConvertFrom-Json
DisplayHint : 2
DateTime : Saturday, October 13, 2018 3:28:40 AM
Date : 10/13/2018 12:00:00 AM
Day : 13
DayOfWeek : 6
DayOfYear : 286
Hour : 3
Kind : 2
Millisecond : 346
Minute : 28
Month : 10
Second : 40
Ticks : 636749981203464381
TimeOfDay : @{Ticks=125203464381; Days=0; Hours=3; Milliseconds=346; Minutes=28; Seconds=40;
TotalDays=0.14491141710763888; TotalHours=3.4778740105833332; TotalMilliseconds=12520346.4381;
TotalMinutes=208.67244063500002; TotalSeconds=12520.3464381}
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.
Parametereigenschaften
| Typ: | SwitchParameter |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-Depth
Gibt an, wie viele Ebenen von enthaltenen Objekten in der JSON-Darstellung enthalten sind. Der Standardwert ist 2.
Parametereigenschaften
| Typ: | Int32 |
| Standardwert: | 2 |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | 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 ermittelt. Sie können ein Objekt auch über die Pipeline an ConvertTo-Json übergeben.
Der parameter InputObject ist erforderlich, sein Wert kann jedoch null ($null) oder eine leere Zeichenfolge sein.
Wenn das Eingabeobjekt $nullist, generiert ConvertTo-Json keine Ausgabe.
Wenn es sich bei dem Eingabeobjekt um eine leere Zeichenfolge handelt, gibt ConvertTo-Json eine leere Zeichenfolge zurück.
Parametereigenschaften
| Typ: | Object |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | 0 |
| Obligatorisch: | True |
| Wert aus Pipeline: | True |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
CommonParameters
Dieses Cmdlet unterstützt die allgemeinen Parameter -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction und -WarningVariable. Weitere Informationen findest du unter about_CommonParameters.
Eingaben
Object
Sie können jedes Objekt über die Pipeline an ConvertTo-Json übergeben.
Ausgaben
String
Hinweise
- Das Cmdlet ConvertTo-Json wird mithilfe der JavaScriptSerializer-Klasse implementiert.