首页 > 解决方案 > PowerShell ConvertFrom-Json 忽略顶级数组?

问题描述

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

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

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

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

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

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

标签: jsonpowershell

解决方案


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

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

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

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

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


推荐阅读