41

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"
                   }
    }
]

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

4

2 に答える 2

73

深さの問題です。デフォルト値は 2 です。試していただけますか :

ConvertTo-json @($val) -Depth 5
于 2013-07-31T13:44:45.533 に答える
0
-Depth $([int32]::MaxValue)

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

于 2016-05-13T09:58:13.197 に答える