Freigeben über


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 ein Objekt in eine Zeichenfolge im JavaScript Object Notation (JSON)-Format. 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 problemlos in Windows PowerShell verwaltet werden kann.

Viele Websites verwenden JSON statt 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"}

Dieses Beispiel zeigt die Auswirkungen der Verwendung des -Compress Parameters von ConvertTo-Json. Die Komprimierung wirkt sich nur auf die Darstellung der Zeichenfolge, 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 von ConvertTo-Json zurückgegeben wird.

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 mit den Cmdlets ConvertTo-Json und ConvertFrom-Json ein Objekt in eine JSON-Zeichenfolge und ein JSON-Objekt konvertieren.

Parameter

-Compress

Lässt Leerstellen und eingerückte Formatierungen in der Ausgabezeichenfolge aus.

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

-Depth

Gibt an, wie viele Ebenen der enthaltenen Objekte in der JSON-Darstellung enthalten sind. Der Standardwert ist 2.

Type:Int32
Position:Named
Default value:2
Required:False
Accept pipeline input:False
Accept wildcard characters: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 einen Ausdruck ein, mit dem die Objekte abgerufen werden. Sie können ein Objekt auch über die Pipeline an ConvertTo-Json übergeben.

Der InputObject-Parameter ist erforderlich, sein Wert kann jedoch NULL ($null) oder eine leere Zeichenfolge sein. Wenn das Eingabeobjekt ist, generiert $nullConvertTo-Json keine Ausgabe. Wenn das Eingabeobjekt eine leere Zeichenfolge ist, gibt ConvertTo-Json eine leere Zeichenfolge zurück.

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

Eingaben

Object

Sie können jedes beliebige Objekt über eine Pipeline an ConvertTo-Json übergeben.

Ausgaben

String

Hinweise