[登録されているタグ]

[記事公開日]2025/12/20

PowerShellでJSONを書き出す|ConvertTo-Jsonの使い方

📝 はじめに

PowerShellで取得・加工したデータを、
「JSON形式で保存したい」
「APIに送信するためにJSONを作りたい」
という場面は非常によくあります。

そのときに使うのが
ConvertTo-Json です。
この記事では、PowerShellのオブジェクトをJSONとして書き出す基本から、
実務でつまずきやすい -Depth や保存方法までを分かりやすく解説します。

こんな場面で便利

  • 設定ファイル(config.json)を作成したい
  • API送信用のJSONデータを生成したい
  • PowerShellの結果をJSONとして保存したい

✅ このコマンドでできること(要点)

  • PowerShellオブジェクトをJSON文字列に変換できる
  • 配列や入れ子構造をJSONとして出力できる
  • 整形された(インデント付き)JSONを生成できる
  • Out-File などと組み合わせてファイル保存できる

✅ ConvertTo-Json でできること

ConvertTo-Json は、
PowerShellのオブジェクトを
JSON形式の文字列に変換するコマンドです。

変換結果は文字列になるため、
ファイルへの保存やAPI送信にそのまま利用できます。
似た用途の考え方としては「オブジェクトをJSONにシリアライズする」です。

🧩 基本構文

オブジェクト | ConvertTo-Json

▶ 基本的な使い方(まずこれだけ)

🔹 シンプルなオブジェクトをJSONに変換する

$obj = [pscustomobject]@{
  name = "taro"
  age  = 20
}

$obj | ConvertTo-Json

実行すると、整形されたJSON文字列が出力されます。

🔹 JSONをファイルに保存する

$obj | ConvertTo-Json |
Out-File ".\output.json" -Encoding UTF8

JSONを書き出す場合は、
Out-File -Encoding と組み合わせるのが定番です。

🛠 よく使われる指定例

🔹 入れ子(ネスト)を含むデータを出力する(Depth)

$obj = [pscustomobject]@{
  user = [pscustomobject]@{
    name = "taro"
    role = "admin"
  }
}

$obj | ConvertTo-Json -Depth 5
注意

  • -Depth を指定しないと、深い階層が省略される場合があります。

🔹 配列データをJSONとして出力する

$items = Get-Process | Select-Object -First 3 Name, Id
$items | ConvertTo-Json -Depth 3

複数オブジェクトはJSON配列([])として出力されます。

💼 実務でよく使う使用例(応用)

🔹 CSV → JSON に変換して保存する

Import-Csv ".\data.csv" |
ConvertTo-Json -Depth 5 |
Out-File ".\data.json" -Encoding UTF8

🔹 API送信用のJSONデータを作成する

$payload = [pscustomobject]@{
  title   = "sample"
  enabled = $true
}

$json = $payload | ConvertTo-Json -Depth 5
組み合わせ例

  • Import-Csv:CSVからデータ取得
  • Select-Object:項目の整理
  • Out-File -Encoding:JSONを安全に保存

🧩 よくある勘違い・つまずきポイント

  • ConvertTo-Jsonの結果は「文字列」であり、オブジェクトではない
  • 入れ子構造は -Depth を指定しないと欠落することがある
  • Format-Table など表示用コマンドの後では使いにくい
  • 保存時の文字コードを指定しないと文字化けすることがある

⚠ エラー・うまく動かないときの確認ポイント

  • -Depth が足りているか
  • 変換対象が想定どおりオブジェクトになっているか
  • 保存先パスと書き込み権限
  • API送信時は相手側が期待するJSON形式か

🧠 注意点

JSONは相手(API・システム)が期待する構造が決まっている場合があります。
実務では、まず小さなデータで
ConvertTo-Json の出力を確認してから本番利用すると安心です。

📌 まとめ

  • ConvertTo-Json はオブジェクトをJSON文字列に変換する
  • 入れ子構造がある場合は -Depth を忘れない
  • 保存は Out-File -Encoding とセットで行う
  • ConvertFrom-Json と対で覚えると理解が深まる

🔎 PowerShellコマンドを探す

  • ファイルを削除したい
  • 一覧を表示したい
  • 文字列を検索したい
  • 条件で絞り込みたい
  • エラーや実行できない原因を調べたい
  • JSONを書き出したい
  • JSONを読み込みたい(ConvertFrom-Json)
  • 文字コードを指定して保存したい(Out-File -Encoding)
Generic filters

サイト内検索(入力すると候補が出ます)

Generic filters


Generic filters

Generic filters

すべてを開く | すべてを閉じる
ページ上部へ戻る