我遇到了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"
}
}
]
似乎在数组中,转换不正确。关于为什么会发生这种情况的任何想法?
答案 0 :(得分:56)
深度有问题,默认值为2,您可以尝试:
ConvertTo-json @($val) -Depth 5
答案 1 :(得分:0)
-Depth $([int32]::MaxValue)
指定无限深度(ConvertTo-Json cmdlet可能的最大值)