PowerShellで同じ定義が続くレコードのようなJSONファイルを読み込むサンプルコードを紹介します。
ファイル構成
jsonファイルとpowershellファイル(ps1)は同じディレクトリに格納しています。
ソースコード
コマンドを叩くと、JSONファイルを読み込んで全部出力します。
今回は2パターンのforeach文でidとnameを出力します。
コマンド
powershell -ExecutionPolicy RemoteSigned -File "ReadJson_multi.ps1"
ReadJson_multi.ps1
# JSONファイルの読み込み
$jsonContent = Get-Content -Path "json_multi.json" -Raw
$jsonObj = ConvertFrom-Json $jsonContent
# 繰り返し処理 1
$jsonObj | ForEach-Object { Write-Host $_.id }
# 繰り返し処理 2
foreach($person in $jsonObj){
Write-Host $person.name
}
json_multi.json(JSONファイル)
[{
"id":1,
"name":"Suzuki Taro",
"age":105,
"city":"Tokyo"
},
{
"id":2,
"name":"Yamada Hanako",
"age":22,
"city":"Sapporo"
},
{
"id":3,
"name":"Shimada Jiro",
"age":55,
"city":"Maebashi"
},
{
"id":4,
"name":"Kihara Maruko",
"age":30,
"city":"Hakata"
}]
テスト実行
Windows PowerShellのターミナルから、上記のReadJson.ps1を実行するコマンドを打ちます。
idとnameが全て出力されました。
参考情報
環境
下記の環境で作成・実行しております。
No. | 環境 | バージョン |
---|---|---|
1 | OS | Windows11 |
2 | PowerShell | 5.1 |
以上です。