Lug*_*age 34 powershell powershell-3.0
我正在尝试创建一个JSON序列化的数组.当该数组只包含一个项时,我得到一个字符串,而不是一个字符串数组(在JSON中).
多个项目(按预期工作):
PS C:\> @("one", "two") | ConvertTo-JSON
[
"one",
"two"
]
Run Code Online (Sandbox Code Playgroud)
单项数组(不符合预期):
PS C:\> @("one") | ConvertTo-JSON
"one"
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?
Ans*_*ers 51
尝试没有管道:
PS C:\> ConvertTo-Json @('one', 'two')
[
"one",
"two"
]
PS C:\> ConvertTo-Json @('one')
[
"one"
]Run Code Online (Sandbox Code Playgroud)
nkr*_*ron 13
我也遇到了这个问题但是因为我的结构太深而且ConvertTo-Json将一定深度以下的所有东西变平为一个字符串.
例如:
PS C:\> $MyObject = @{ "a" = @{ "b" = @{ "c" = @("d") } } }
PS C:\> ConvertTo-Json $MyObject
{
"a": {
"b": {
"c": "d"
}
}
}
Run Code Online (Sandbox Code Playgroud)
要解决此问题,您可以将更大的值传递给-Depth
PS C:\> ConvertTo-Json $MyObject -Depth 100
{
"a": {
"b": {
"c": [
"d"
]
}
}
}
Run Code Online (Sandbox Code Playgroud)
我刚刚遇到了同样的问题,并发现您只需将 an 附加-AsArray到ConvertTo-Json命令即可。\n示例:
\xe2\x9d\xaf @("one") | ConvertTo-Json -AsArray \n[\n "one"\n]\nRun Code Online (Sandbox Code Playgroud)\n\xe2\x9d\xaf @("one", "two") | Convert-ToJson -AsArray\n[\n "one",\n "two"\n]\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
22184 次 |
| 最近记录: |