Schreiben eines JSON-Objekts in eine Datei in PowerShell

Migel Hewage Nimesha 31 Mai 2022
  1. Benutzerdefinierte PowerShell-Objekte
  2. PowerShell-JSON-Objekt in JSON-String
  3. JSON-String in einer Datei speichern
Schreiben eines JSON-Objekts in eine Datei in PowerShell

PowerShell ist eine sehr leistungsfähige objektbasierte Sprache, mit der strukturierte Daten erstellt werden können. Daher ist es einfacher, damit zu arbeiten als mit reinem Text.

Benutzerdefinierte PowerShell-Objekte

Das PSCustomObject ist die Basis für PowerShell-Objekte. Es enthält Eigenschaften und Werte.

Daher kann PowerShell auch mit JSON-Objekten umgehen.

Lassen Sie uns ein benutzerdefiniertes JSON-Objekt aus einem JSON-Beispiel erstellen. Wir haben der Variablen $MyJsonVar einen JSON zugewiesen.

$MyJsonVar = @"
 {
   "ExampleJson":{
     "Fruit1":{
       "Name":"Apple",
       "Price":"`$10.00"
     }
  }
 }
"@

Ausgabe:

Benutzerdefinierte PowerShell-Objekte 1

Wir müssen das eigentliche JSON-Objekt mit dem Cmdlet ConvertFrom-JSON erstellen. Dadurch wird das echte PSCustomObject erstellt.

Weisen wir das neu erstellte JSON-Objekt der Variablen $MyJsonObject zu.

$MyJsonObject = $MyJsonVar | ConvertFrom-Json

Lassen Sie uns das neu erstellte PSCustomObject, ein JSON-Objekt, anzeigen.

$MyJsonObject

Ausgabe:

Benutzerdefinierte PowerShell-Objekte 2

Sie können über seine Eigenschaften auf das JSON-Objekt zugreifen.

$MyJsonObject.ExampleJson.Fruit1.Price
$MyJsonObject.ExampleJson.Fruit1.Name

Ausgabe:

Benutzerdefinierte PowerShell-Objekte 3

Es wurde also bestätigt, dass wir ein richtiges benutzerdefiniertes PowerShell-Objekt namens $MyJsonObject erhalten haben.

PowerShell-JSON-Objekt in JSON-String

Das Cmdlet ConvertTo-Json kann ein vorhandenes benutzerdefiniertes Objekt in eine JSON-Zeichenfolge konvertieren. Dies wird reiner Text im JSON-Format sein.

Syntax:

ConvertTo-Json
              [-InputObject] <Object>
              [-Depth <Int32>]
              [-Compress]
              [-EnumsAsStrings]
              [-AsArray]
              [-EscapeHandling <StringEscapeHandling>]
              [<CommonParameters>]

Alle oben genannten Parameter sind für das Cmdlet ConvertTo-Json optional.

Der Parameter -Depth kann die Anzahl der Ebenen im JSON-String angeben. Es ist ein wichtiger Parameter und muss sehr sorgfältig verwendet werden.

Die fehlerhafte Verwendung dieses Parameters kann zu Datenverlust führen. Der Standardwert ist 2.

Der Parameter -InputObject gibt das benutzerdefinierte Objekt an, das in einen JSON-String konvertiert werden muss. Wir können ein benutzerdefiniertes Objekt einfach an das Cmdlet ConvertTo-Json weiterleiten.

Wir können das $MyJsonObject durch die Pipe (|) senden, um das benutzerdefinierte Objekt in einen JSON-String umzuwandeln.

$MyJsonObject | ConvertTo-Json

Ausgabe:

JSON-Objekt in JSON-String

JSON-String in einer Datei speichern

Es ist möglich, einen JSON-String mit PowerShell in einer Datei zu speichern. Wir können die JSON-String-Ausgabe an das Cmdlet Out-File weiterleiten.

Es ist möglich, den Pfad anzugeben, in dem wir die .json-Datei erstellen müssen.

$MyJsonObject | ConvertTo-Json | Out-File "D:\misc\example.json"

Der Pfad "D\misc\example.json" kann variieren. Dadurch wird eine example.json-Datei in der angegebenen Verzeichnisstruktur erstellt.

Ausgabe:

JSON-String in einer Datei speichern

Das benutzerdefinierte JSON-Objekt wurde in einer example.json-Datei im JSON-Format gespeichert.

Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.

Verwandter Artikel - PowerShell JSON