Lesen Sie JSON-Dateien in PowerShell

Aamir Khan 21 Juni 2023
  1. Verwenden Sie Get-Content, um JSON als String in PowerShell zu lesen
  2. Verwenden Sie ConvertFrom-Json, um JSON als benutzerdefiniertes Objekt in PowerShell zu lesen
  3. Verwenden Sie Invoke-WebRequest, um JSON aus dem Web in PowerShell zu lesen
Lesen Sie JSON-Dateien in PowerShell

Dieses Tutorial zeigt, wie JSON-Dateien in PowerShell gelesen werden.

Verwenden Sie Get-Content, um JSON als String in PowerShell zu lesen

Der Get-Content-Befehl ist ein PowerShell-Befehl, der den Inhalt eines Elements liest. Dieser Befehl akzeptiert einen Path-Parameter, der den Ort des Elements angibt; der Inhalt sind normalerweise Textdaten.

Die JSON-formatierte Zeichenfolge ist ebenfalls Textdaten; Dieser Befehl kann eine JSON-Datei lesen und als Zeichenfolge an die Shell ausgeben.

Der folgende Befehl liest eine JSON-Datei als Zeichenfolge.

Get-Content "transactions.json"

Ausgang:

[
    {
        "Date": "19/5/2022",
        "ProductId": "0001",
        "ProductName": "Fizzy Drink",
        "Cost": "2.32",
        "Currency": "USD"
    },
    {
        "Date": "16/5/2022",
        "ProductId": "0002",
        "ProductName": "Dark Chocolate",
        "Cost": "6.52",
        "Currency": "USD"
    },
    {
        "Date": "10/5/2022",
        "ProductId": "0003",
        "ProductName": "Snacks",
        "Cost": "4.2",
        "Currency": "USD"
    }
]

Verwenden Sie ConvertFrom-Json, um JSON als benutzerdefiniertes Objekt in PowerShell zu lesen

ConvertFrom-Json ist ein PowerShell-Befehl, der eine Zeichenfolge im JSON-Format in ein benutzerdefiniertes PowerShell-Objekt oder PSCustomObject konvertiert. Dieses Objekt enthält alle Eigenschaften, die den JSON-Feldern entsprechen.

Der folgende Befehl kombiniert den Get-Content mit dem ConvertFrom-Json, um ein JSON als PSCustomObject zu lesen.

Get-Content "transactions.json" | ConvertFrom-Json

Ausgang:

Date        : 19/5/2022
ProductId   : 0001
ProductName : Fizzy Drink
Cost        : 2.32
Currency    : USD

Date        : 16/5/2022
ProductId   : 0002
ProductName : Dark Chocolate
Cost        : 6.52
Currency    : USD

Date        : 10/5/2022
ProductId   : 0003
ProductName : Snacks
Cost        : 4.2
Currency    : USD

Verwenden Sie Invoke-WebRequest, um JSON aus dem Web in PowerShell zu lesen

JSON ist ein Datenaustauschformat, das häufig im Web für die Client- und Serverkommunikation verwendet wird. Ein Client sendet eine HTTP/HTTPS-Anforderung an einen Server, und als Ergebnis gibt der Server die angeforderten Daten als JSON zurück.

Illustration der PowerShell-Client- und -Serverkommunikation

Der Invoke-WebRequest sendet eine HTTP-Anfrage an eine angegebene URI. Der Server empfängt die Anfrage und antwortet entsprechend mit einem JSON.

Der folgende Befehl sendet eine Webanfrage an einen Server und parst den JSON mit ConvertFrom-Json.

Invoke-WebRequest -Uri https://my-json-server.typicode.com/typicode/demo/posts | ConvertFrom-Json

Ausgang:

id title
-- -----
 1 Post 1
 2 Post 2
 3 Post 3

Verwandter Artikel - PowerShell JSON