PowerShell ConvertFrom-Json 忽略顶级数组?

Osk*_*kar 2 powershell json

我正在尝试解析一个 JSON 数组,ConvertFrom-Json但如果它在顶层,PowerShell 似乎忽略了该数组。

例如,这意外地返回 count = 1:

'[{a:1},{b:2}]' | ConvertFrom-Json | measure
Run Code Online (Sandbox Code Playgroud)

但是当我将 JSON 数组放在一个对象中时,它似乎按预期进行了解析。这将返回计数 = 2

('{list:[{a:1},{b:2}]}' | ConvertFrom-Json).list | measure
Run Code Online (Sandbox Code Playgroud)

如果ConvertFrom-Json不适用于 JSON 数组,是否还有其他选择?

Mik*_*ard 5

'[{a:1},{b:2}]' | ConvertFrom-Json | measure

您所做的是测量管道返回的对象数量。管道返回一个包含 2 个对象的数组,而不是 2 个对象。

如果你想要数组中的数量,你可以这样做:

('[{a:1},{b:2}]' | ConvertFrom-Json).Count

在第二个示例中,PowerShell 正在展开列表以获取其中的项目(正常的 PowerShell 管道行为)。