我正在使用Powershell探索REST API。我发现了一个奇怪的异常。当我序列化/描述以下responses
对象时,对象消失了!我已经验证了将其转换为.net对象时一切仍然完好无损,因此从.net对象转换为JSON时会发生问题。
$json = @'
{
"stubs": [
{
"responses": [
{
"is": {
"body": "54"
}
},
{
"is": {
"body": "21"
}
},
{
"is": {
"body": "0"
}
}
]
}
]
}
'@
$json | ConvertFrom-Json | ConvertTo-Json
上面转换的结果是这样的:
{
"stubs": [
{
"responses": " "
}
]
}
如果运行此命令,则会收到54,如预期的那样:
$json | ConvertFrom-Json | %{ $_.stubs.responses[0].is.body }
我在Ubuntu上运行,但是不相信这会有所作为。对于Windows上的某人来说,这应该很容易验证。
ConvertTo-Json
接受一个可选Depth
参数(无论出于何种原因)默认为2。链接文档中描述的参数本身如下:
指定JSON表示形式中包含多少级包含的对象。预设值为2。
如果您为此参数提供更高的值,它将起作用-最大值为100:
$json | ConvertFrom-Json | ConvertTo-Json -Depth 100
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句