JSON 文件中的 Powershell Out-GridView
Powershell Out-GridView from JSON file
我想加载一个 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
)的一个特点。它似乎并没有像您期望的那样沿管道传递对象,因此您必须完成管道以获取对象,然后再使用它们。
一种方法是将其分配给一个变量,另一种方法是将其括在括号中 ( )
。
我不确定为什么会这样,但我想这是关于它在内部做什么以及它如何 returns 它的对象的实现细节。
我试图看看我是否可以更深入地研究这个问题,使用 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 文件并在 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
)的一个特点。它似乎并没有像您期望的那样沿管道传递对象,因此您必须完成管道以获取对象,然后再使用它们。
一种方法是将其分配给一个变量,另一种方法是将其括在括号中 ( )
。
我不确定为什么会这样,但我想这是关于它在内部做什么以及它如何 returns 它的对象的实现细节。
我试图看看我是否可以更深入地研究这个问题,使用 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