代码之家  ›  专栏  ›  技术社区  ›  Andreas_Lng

使用MS PowerShell ISE查询JSON数据

  •  0
  • Andreas_Lng  · 技术社区  · 6 年前

    我有一个包含JSON数据的文本文件,如下所示:

    { 
      "field1":"value1",
      "field2": [
          { 
             "subfield1": "subvalue",
             "subfield2": []
          },
          { 
             "subfield1": "subvalue2",
             "subfield2": [ "string1", "string2", "...", "stringN" ]
          }
      ]
    }
    

    我想获取field2中包含的对象的计数,其中子字段2为空。

    我尝试通过这种方式获取子字段2为空的所有对象:

    $datas = Get-Content -Path .\data
    $json = $datas | ConvertFrom-Json
    $json.field2 | Select-Object subfield2 | where subfield2 -Match ".*\[\].*"
    

    执行此操作将导致没有输出。使用-eq或-like也不起作用。

    1 回复  |  直到 6 年前
        1
  •  3
  •   Kory Gill    6 年前

    可能还有很多其他的方法。这是一个。

    @($json.field2 | Where-Object {$($_.subfield2) -eq $null}).Count
    

    制作 $_.subfield2 一个字符串 $($_.subfield2) . 检查字符串$null。