该命令:
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/