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

第二次转换给出了这个输出:

[
    {
        "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 cmdlet 可能的最大值)

于 2016-05-13T09:58:13.197 回答