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对象
将它们很好地分开