【发布时间】:2017-02-24 20:58:32
【问题描述】:
在 powershell 中,以下会产生正确的结果。
$foo = @{}
$foo.bar = @{}
$foo.bar.buzz = @("herp","derp")
ConvertTo-Json $foo
{
"bar": {
"buzz": [
"herp",
"derp"
]
}
}
但是,如果我再添加一个级别,则数组“buzz”会被展平为字符串
$foo = @{}
$foo.bar = @{}
$foo.bar.buzz = @{}
$foo.bar.buzz.bazz = @("herp","derp")
ConvertTo-Json $foo
{
"bar": {
"buzz": {
"bazz": "herp derp"
}
}
}
为什么 powershell 会将数组扁平化为字符串? 这个问题感觉类似于以下 SO 问题,但没有一个有目的的解决方案可以解决它。
why-does-powershell-silently-convert-a-string-array-with-one-item-to-a-string
what-determines-whether-the-powershell-pipeline-will-unroll-a-collection
【问题讨论】:
-
这个问题很好,因为重复的标题描述得不够好。这个标题要好得多。
标签: arrays powershell