具有嵌入式哈希表的Powershell ConvertTo-json

时间:2013-07-29 16:40:54

标签: powershell powershell-v3.0

我遇到了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"
                   }
    }
]

似乎在数组中,转换不正确。关于为什么会发生这种情况的任何想法?

2 个答案:

答案 0 :(得分:56)

深度有问题,默认值为2,您可以尝试:

ConvertTo-json @($val) -Depth 5

答案 1 :(得分:0)

-Depth $([int32]::MaxValue)

指定无限深度(ConvertTo-Json cmdlet可能的最大值)