我想加载一个 JSON 文件并在 powershell GridView 中显示它。我希望这会起作用:
'[{"a":1,"b":2},{"a":3,"b":4},{"a":5,"b":6}]' | ConvertFrom-Json | Out-GridView
最佳答案
('[{"a":1,"b":2},{"a":3,"b":4},{"a":5,"b":6}]' | ConvertFrom-Json) | Out-GridView
# or
$converted = '[{"a":1,"b":2},{"a":3,"b":4},{"a":5,"b":6}]' | ConvertFrom-Json
$converted | Out-GridView
这是 ConvertFrom-Json
以及任何隐式使用它的内容(例如 Invoke-RestMethod
)的特性。它似乎没有像您期望的那样沿着管道传递对象,因此您必须完成管道以获取对象,然后再使用它们。
一种方法是将其分配给变量,另一种方法是将其括在括号中 ( )
。
我不确定为什么会出现这种情况,但我想这是一个有关其内部功能以及如何返回对象的实现细节。
<小时/>我试图看看是否可以更深入地研究这个问题,使用 ForEach-Object
来看看出了什么问题,但它实际上只是工作了,所以这是另一种让它工作的方法,但是在单个管道中(通过使用多余的 ForEach-Object
):
'[{"a":1,"b":2},{"a":3,"b":4},{"a":5,"b":6}]' | ConvertFrom-Json | ForEach-Object { $_ } | Out-GridView
# non-scrolling
'[{"a":1,"b":2},{"a":3,"b":4},{"a":5,"b":6}]' | ConvertFrom-Json | % { $_ } | ogv
关于json - 来自 JSON 文件的 Powershell Out-GridView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37311047/