web-dev-qa-db-ja.com

ハッシュテーブルが埋め込まれたPowershell ConvertTo-json

ConvertTo-Jsonに問題があり、動作や私が間違っていることを理解しようとしていました。

次の一連のコマンドを検討してください。

$val=@{ID=10;Config=@{ID=11;Config=@{ID=12;Config='end'}}}
ConvertTo-json $val
ConvertTo-json @($val)

最初の変換はこの出力を与えます:

{
    "ID":  10,
    "Config":  {
                   "ID":  11,
                   "Config":  {
                                  "ID":  12,
                                  "Config":  "end"
                              }
               }
}

2番目の変換により、次の出力が得られます。

[
    {
        "ID":  10,
        "Config":  {
                       "ID":  11,
                       "Config":  "System.Collections.Hashtable"
                   }
    }
]

配列の場合、変換が正しくないようです。なぜこれが起こっているのかについてのアイデアはありますか?

38
Andy Sipe

深さの問題です。デフォルト値は2です。

ConvertTo-json @($val) -Depth 5
65
JPBlanc
-Depth $([int32]::MaxValue)

無限の深さを指定します(ConvertTo-Jsonコマンドレットで可能な最大値)

0
YMM