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ファイルを作成します。
関連の記事
