从powershell 3提示符,我想调用一个RESTful服务,获得一些JSON,并打印它.我发现如果我将数据转换为powershell对象,然后将powershell对象转换回json,我会得到一个漂亮的漂亮打印字符串.但是,如果我将两个转换组合成一个带管道的单线程,我会得到不同的结果.
TL; DR:这个:
PS> $psobj = $orig | ConvertFrom-JSON
PS> $psobj | ConvertTo-JSON
Run Code Online (Sandbox Code Playgroud)
......给我的结果与此不同:
PS> $orig | ConvertFrom-JSON | ConvertTo-JSON
Run Code Online (Sandbox Code Playgroud)
[
{
"Type": "1",
"Name": "QA"
},
{
"Type": "2",
"Name": "whatver"
}
]
Run Code Online (Sandbox Code Playgroud)
我将删除空格(因此它适合一行...),将其转换为powershell对象,然后将其转换回JSON.这很好用,并返回正确的数据:
PS> $orig = '[{"Type": "1","Name": "QA"},{"Type": "2","Name": "DEV"}]'
PS> $psobj = $orig | ConvertFrom-JSON
PS> $psobj | ConvertTo-JSON
[
{
"Type": "1",
"Name": "QA"
},
{
"Type": "2",
"Name": "DEV"
}
]
Run Code Online (Sandbox Code Playgroud)
但是,如果我将最后两个语句组合成一个单行,我会得到不同的结果:
PS> $orig | ConvertFrom-JSON | ConvertTo-JSON …Run Code Online (Sandbox Code Playgroud)