如果另一个值大于零,我如何提取 JSON 值?

How do I extract a JSON value if another value is higher than zero?

我当前的代码:

Powershell -Noprofile "(Get-Content 'allacts.txt' | ConvertFrom-Json).activityid | Out-File -FilePath ids%filenum%.txt"

这会查询 JSON 文件 (allacts.txt) 并提取单个值 activityid。

但是,我不想要 所有 activityids,只想要 attendedpeoplecount 值大于 0 的那些。如何我的工作是如果逻辑进入这个命令?

样本:

[
  {
    "activityid": 610228,
    "attendedpeoplecount": 0
  },
  {
    "activityid": 568168,
    "attendedpeoplecount": 36
  }
]

以上 json 的当前命令将 return

610228
568168

所需的输出将是

568168

使用 Where-Object Cmdlet 应该可以满足您的需求。

Powershell -Noprofile "((Get-Content 'allacts.txt' | ConvertFrom-Json) | Where-Object { $_.attendedpeoplecount -gt 0 }).activityid | Out-File -FilePath ids%filenum%.txt"

更新:将Get-ContentConvertFrom-Json包裹在括号