PowerShell JSONを読み込む/出力する

PowerShellのJSONのファイルを読み込む/出力するサンプルです。

目次

サンプル JSONのファイルを読み込む
  JSONのファイルに書き込む

JSONのファイルを読み込む

読み込み対象のJSONファイルです。ファイル名はtest1.jsonです。

{
    "id": "1",
    "name": "suzuki",
    "hobby": [
        "fishing",
        "swimming"
    ]
}

4行目は配列です。

JSONファイルを読み込み、値をWrite-Hostで表示します。

ConvertFrom-Json
$jsonData =(Get-Content "d:\test1\test1.json" | ConvertFrom-Json)

Write-Host ($jsonData.id) # 1
Write-Host ($jsonData.name) # suzuki
Write-Host ($jsonData.hobby[0]) # fishing
Write-Host ($jsonData.hobby[1]) # swimming

Write-Host ($jsonData) #@{id=1;name=suzuki;hobby=System.Object[]}

1行目は、Get-ContentでJsonファイルを読み込み、ConvertFrom-JsonでJSONをオブジェクトに変換します。

JSONのファイルに書き込む

ConvertTo-Json

クラスのオブジェクトを生成し値をセットしてJSONファイルに書き込みます。

class employee {
    [int] $id
    [string] $name

    setId([int]$id) {
        $this.id = $id
    }
    setName([string]$name) {
        $this.name = $name
    }
}
$employee = New-Object employee

$employee.setId(1)
$employee.setName('suzuki')

$utf8NoBom = New-Object System.Text.UTF8Encoding $false

[System.IO.File]::WriteAllLines("d:\test1\test2.json",(ConvertTo-Json $employee), $utf8NoBom)

1~11行目は、クラスです。
12行目でオブジェクトを生成し14,15行目は値をセットしています。
17行目は、UTF8のBOM無しの設定です。
19行目は、JSONファイルを作成します。

関連の記事

PowerShell テキストファイルの読み書き

△上に戻る