メモの日々


2022年04月01日(金) [長年日記]

[windows][howto] PowerShellでJSONを手軽に整形

Windowsで1行のJSONを整形して表示したかった。

フォーマットにこだわらなければ、PowerShell上でConvertFrom-JsonConvertTo-Jsonを組合せて次のようにするのが一番手軽に思えたがどうだろうか。

convertfrom-json '{"a": 1, "b1": {"b2": {"b3": {"b4": 2}}}, "c": ["hello", "world"]}' `
| convertto-json
{
    "a":  1,
    "b1":  {
               "b2":  {
                          "b3":  "@{b4=2}"
                      }
           },
    "c":  [
              "hello",
              "world"
          ]
}

ただし、よく見ると "b3" の所がおかしい。

これは ConvertTo-Json に -Depth オプションを指定すれば解決する。

convertfrom-json '{"a": 1, "b1": {"b2": {"b3": {"b4": 2}}}, "c": ["hello", "world"]}' `
| convertto-json -depth 3
{
    "a":  1,
    "b1":  {
               "b2":  {
                          "b3":  {
                                     "b4":  2
                                 }
                      }
           },
    "c":  [
              "hello",
              "world"
          ]
}