我想从文件中读取JSON并将其转换为由两个属性的串联构成的字符串数组。
到目前为止,我已经得到了这个:
$packageCache = Get-Content $pathtojsonfile | ConvertFrom-Json | %{$($_.Key) + "-" + $($_.Value)}
Write-Output $packageCache
问题是它最终会创建一个包含Id值和Version值的数组,作为数组中完全不同的项。
最终看起来像这样:
key1
key2
value1
value2
我有什么问题?
更新: JSON如下所示:
[{ "Key":"key1", "Value":"value1"},{"Key":"key2", "Value":"value2"}]
预期结果如下:
key1-value1
key2-value2
发布的代码就是全部。是的,它是剧本的一部分。
答案 0 :(得分:1)
这是最后的管道绑定,搞砸了你,只需将其改为:
$json = Get-Content $pathtojsonfile | ConvertFrom-Json
$packageCache = $json |% {"$($_.Key)-$($_.Value)"}
$packageCache
key1-value1
key2-value2
顺便说一句,我还要指出+
符号不是必需的,只需将整个内容包装在"
中,如上所示。
答案 1 :(得分:0)
CodedBeard打败了我,但是......
我在这里走错了路。显然,ConvertFrom-Json返回了一个Object []。所以,我只是迭代单个项目而没有到达任何地方。
如果我展开返回的数组,一切都会开始工作。
($packageCache = Get-Content $pathtojsonfile | ConvertFrom-Json) | %{$($_.Key) + "-" + $($_.Value)}
请注意命令第一部分周围的(和)。