我正在尝试解析一个 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 数组,是否还有其他选择?
'[{a:1},{b:2}]' | ConvertFrom-Json | measure
您所做的是测量管道返回的对象数量。管道返回一个包含 2 个对象的数组,而不是 2 个对象。
如果你想要数组中的数量,你可以这样做:
('[{a:1},{b:2}]' | ConvertFrom-Json).Count
在第二个示例中,PowerShell 正在展开列表以获取其中的项目(正常的 PowerShell 管道行为)。