默认情况下,PowerShell 无法可靠地往返 JSON。如何确保此类 JSON正确往返?
这是损坏的往返序列化的最小示例:
PS> '{"a":[{"b":{}}]}' | ConvertFrom-Json | ConvertTo-Json -Compress
{"a":[{"b":""}]}
{}
从到的意外更改""
导致 JSON 不再有效。
这是在版本 5.1 下:
PS> $PSVersionTable.PSVersion.ToString()
5.1.15063.674
同样,'[{"b":{}]' | ConvertFrom-Json | ConvertTo-Json
也值得怀疑,如https://windowsserver.uservoice.com/forums/301869-powershell/suggestions/15123162-convertto-json-doesn-t-serialize-simple-objects-pr中所述。但是,请考虑该问题未涵盖的可疑性质。