JSON结构没有幸存转换往返

时间:2014-01-07 00:03:43

标签: json powershell

此命令:

ConvertTo-Json (ConvertFrom-Json '{ "abc": [ [1, 2, 3], 4, [5, 6, 7] ] }')

返回:

{ "abc":  [ [ 1, 2, 3 ], 4, [ 5, 6, 7 ] ] }

但是,以下(更深层次的相同值):

ConvertTo-Json (ConvertFrom-Json '{ "abc": { "abc": [ [ 1, 2, 3 ], 4, [5, 6, 7] ] } }')

返回:

{ "abc":  { "abc":  [ "1 2 3", 4, "5 6 7" ] } }

这是一个错误吗?

理想情况下,我想找出传递给ConvertTo-Json的PowerShell值,以便在第二个示例中生成JSON,即:

'{ "abc": { "abc": [ [ 1, 2, 3 ], 4, [5, 6, 7] ] } }'

我通常使用ConvertFrom-Json来找出这些值。

1 个答案:

答案 0 :(得分:4)

-Depth 3传递给ConvertTo-Json可以解决问题:

ConvertTo-Json -Compress -Depth 3 (ConvertFrom-Json '{ "abc": { "abc": [ [ 1, 2, 3 ], 4, [5, 6, 7] ] } }')

产生

{"abc":{"abc":[[1,2,3],4,[5,6,7]]}}