PowerShellでJSONファイルへ書き込むサンプルコード

PowerShell
記事内に広告が含まれています。

PowerShellでJSONファイルへ書き込むサンプルコードを紹介します。

ファイル構成

jsonファイルとpowershellファイル(ps1)は同じディレクトリに格納しています。

ソースコード

コマンドを叩くと、JSONファイルを読み込み、ageプロパティとpets.typeプロパティを変更し書き込みます。

また、プロパティ”language” : “japanese”を新規に追加します。

コマンド

powershell -ExecutionPolicy RemoteSigned -File "WriteJson.ps1"

WriteJson.ps1

# JSONファイルの読み込み
$jsonContent = Get-Content -Path "json1.json" -Raw
$jsonObj = ConvertFrom-Json $jsonContent
# プロパティの変更
# 年齢
$jsonObj.age = 99
# ペットの種類
$jsonObj.pets.type = "bird"
# プロパティの追加
# 母語
$jsonObj | Add-Member -Name "language" -Value "Japanese" -MemberType NoteProperty
# ファイル書き込み (Depthは最大の100を指定)
ConvertTo-Json $jsonObj -Depth 100 | Out-File json1.json -Encoding utf8

※ConvertTo-Jsonの-Depthは標準は2階層です。深い階層が途切れるので、最大の100を指定しています。

json1.json(JSONファイル)

{
    "name":"Suzuki Taro",
    "age":105,
    "city":"Tokyo",
    "pets":{
        "type":"cat",
        "name":"Pochi"
    }
}

テスト実行

Windows PowerShellのターミナルから、上記のWriteJson.ps1を実行するコマンドを打ちます。

コマンド上はそのまま終了します。

json1.jsonが書き換わりました。

  • age 105 → 99
  • pets.type cat → bird

また、”language” : “japanese”が追加されています。

参考情報

環境

下記の環境で作成・実行しております。

No.環境バージョン
1OSWindows11
2PowerShell5.1
環境一覧

以上です。