PowerShellで取得したJSONを解析する

PowerShellカテゴリを表すパンダのイラスト PowerShell

PowerShellで取得したJSONを解析する

1. 課題背景と実務シナリオ

多くの業務システムでは、外部APIとの連携や設定ファイルの読み込みにJSON形式が利用されています。PowerShellを用いてこれらのJSONデータを取得し、必要な情報だけを抽出・加工する必要があるケースは頻繁に発生します。例えば、

  • Azure APIからのリソース情報取得: Azure Resource Graph APIから取得したJSONレスポンスから特定のリソース名や状態を抽出する。
  • CI/CDパイプラインでの設定ファイル読み込み: JSON形式の設定ファイルから、環境変数や実行するコマンドを動的に取得する。
  • サードパーティAPIとの連携: 外部サービスのAPIから返されたJSONデータから、必要なデータ項目を抽出し、業務システムに反映させる。

これらのシナリオにおいて、PowerShellで効率的にJSONを解析する技術は不可欠です。

2. GitHubや公式Docsでの調査結果

PowerShellにおけるJSONの解析には、ConvertFrom-Jsonコマンドレットが中心的に用いられます。

GitHubには、PowerShellでJSONを扱う様々なスクリプトが公開されていますが、具体的なURLはここでは省略します(検索キーワード:powershell json parsing)。

3. VBA / PowerShellでの実装コード(複数パターン)

3.1 簡易例

JSON文字列から特定のプロパティ値を取得するシンプルな例です。

$jsonString = '{"name": "John Doe", "age": 30, "city": "New York"}'
$jsonObject = $jsonString | ConvertFrom-Json
Write-Host "Name: $($jsonObject.name)"
Write-Host "Age: $($jsonObject.age)"

3.2 応用例:ネストされたJSONの処理

ネストされたJSON構造から、深い階層のプロパティにアクセスします。

$jsonString = '{"user": {"name": "Jane Doe", "address": {"street": "123 Main St", "city": "London"}}}'
$jsonObject = $jsonString | ConvertFrom-Json
Write-Host "Street: $($jsonObject.user.address.street)"

3.3 エラーハンドリング

ConvertFrom-Jsonは不正なJSON文字列を受け取るとエラーを返します。エラーハンドリングは必須です。

try {
  $jsonString = '{"name": "John Doe", "age": 30, "city": "New York"}'
  $jsonObject = $jsonString | ConvertFrom-Json
  Write-Host "Name: $($jsonObject.name)"
}
catch {
  Write-Error "Error parsing JSON: $($_.Exception.Message)"
}

4. 応用展開・類似課題との比較

PowerShell以外では、Pythonのjsonモジュール、JavaScriptのJSON.parse()、VBAのJsonConverterクラスなどがJSON解析に使用できます。Pythonは柔軟性が高く、複雑なJSON構造の処理に適しています。VBAは、ExcelマクロなどでJSONデータを利用する場合に有効です。

5. 注意点とベストプラクティス

  • 不正なJSON文字列の処理: ConvertFrom-Jsonは不正なJSONに対してエラーを返すため、常にtry-catchブロックでエラー処理を行うべきです。
  • 大規模なJSONデータ: 非常に大きなJSONデータの解析には、メモリ不足が発生する可能性があります。そのような場合は、ストリーミング処理などの工夫が必要になります。
  • JSONスキーマの利用: 複雑なJSON構造を扱う場合は、JSONスキーマを定義し、データの検証を行うことで、エラーを早期に検出できます。

6. まとめと実務ヒント

PowerShellのConvertFrom-Jsonコマンドレットは、JSONデータの解析を容易に行うための強力なツールです。エラーハンドリングと適切なデータ検証を組み合わせることで、堅牢かつ効率的なJSON処理を実現できます。明日からすぐに使えるように、上記コードを参考に、自社の業務システムに適用してみてください。 複雑なJSON構造に直面したら、一度Pythonなどの柔軟性の高い言語での処理を検討するのも良いでしょう。

文書情報

記事タイトル
PowerShellで取得したJSONを解析する
作成日
更新日
Source URL
https://papanda925.com/?p=2908

ライセンス: 本記事のうち、当サイトが権利を有する本文・自作図表は、特記なき限り CC BY 4.0 で利用できます。生成AIを活用して作成・編集した内容を含みます。コードについて、別途ライセンス表示またはリンク先GitHubリポジトリのライセンスがある場合は、その条件を優先します。引用・第三者資料・画像・商標等は本ライセンスの対象外です。 利用ポリシー

タイトルとURLをコピーしました