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

使用jq从嵌套数组中获取唯一值

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

    我的JSON如下所示:

    {
      "start": 1534425916,
      "stop": 1535030716,
      "groups": [
        {
          "group": "transmission",
          "data": {
            "events": 665762,
          },
          "items": [
            {
              "item": "manualni",
              "data": {
                "events": 389158,
              }
            },
            {
              "item": "automaticka",
              "data": {
                "events": 276604,
              }
            }
          ]
        },
        {
          "group": "vat",
          "data": {
            "events": 671924,
          },
          "items": [
            {
              "item": "ne",
              "data": {
                "events": 346221,
              }
            },
            {
              "item": "ano",
              "data": {
                "events": 325703,
              }
            }
          ]
        }
      ]
    }
    

    {
      "id": "transmission",
      "value": [
        "manualni",
        "automaticka",
      ]
    }
    {
      "id": "vat",
      "value": [
        "ne",
        "ano"
      ]
    }
    

    已在命令行上尝试使用此筛选器:

    | jq '{id: .groups[].group, value: [.groups[].items[].item]}'
    

    {
      "id": "transmission",
      "value": [
        "manualni",
        "automaticka",
        "ne",
        "ano"
      ]
    }
    {
      "id": "vat",
      "value": [
        "manualni",
        "automaticka",
        "ne",
        "ano"
      ]
    }
    

    你知道如何在这里接受未经证实的价值观吗?提前谢谢!

    1 回复  |  直到 6 年前
        1
  •  0
  •   user197693    6 年前

    这会得到想要的结果。我认为 manual

    jq '.groups[] | {"id": .group, "value": [.items[].item]}'