Powershell 从json混合类型中获取第一个非false的值

Powershell 从json混合类型中获取第一个非false的值,powershell,powershell-3.0,Powershell,Powershell 3.0,这似乎应该是直截了当的,但我不确定为什么Powershell出现问题 我从Node.js获取数据,将其转换为JSON,然后我想获取第一个对象,它不是false (Invoke-WebRequest -UseBasicParsing -Uri "https://nodejs.org/dist/index.json").Content | ConvertFrom-Json | ? { $_.lts -ne 'False' } 我也试过了,但也没用: | ? { -not (-not $_.

这似乎应该是直截了当的,但我不确定为什么
Powershell
出现问题

我从
Node.js
获取数据,将其转换为
JSON
,然后我想获取第一个对象,它不是
false

(Invoke-WebRequest -UseBasicParsing -Uri "https://nodejs.org/dist/index.json").Content |
    ConvertFrom-Json | ? { $_.lts -ne 'False' }
我也试过了,但也没用:

| ? { -not (-not $_.lts) }
我知道上面所说的并不能得到第一个值。我还没有找到解决办法。但这方面的帮助也很好

数据集如下所示:

[
    {"lts": false},
    {"lts": 'Carbon'}
]

更新

当我将
JSON
值设置为变量时,它会工作。奇怪

Invoke-WebRequest -UseBasicParsing -Uri 'https://nodejs.org/dist/index.json' `
    |% Content `
    | ConvertFrom-Json `
    |% { $_ } `
    |? lts -ne $False `
    ;
convertfromjson
将Json数组转换为
Object[]
,必须对其进行分解才能逐记录处理。
convertfromjson
之后的
ForEach对象
将它们很好地分开