该命令:

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找出此类值。

最佳答案

-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]]}}

关于json - JSON结构无法在转换往返中幸存,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20961619/

10-09 06:20
查看更多