如何使用各种数组解析json

如何使用各种数组解析json,json,jq,Json,Jq,我有一个json文件,看起来像: [ { "id": "aaa", "idMembers": [ "David", "Mary" ], "actions": [ { "id": "1", "date": "2019-08-28" }, { "id": "2", "date": "2019-08-29" }, {

我有一个json文件,看起来像:

[
  {
    "id": "aaa",
    "idMembers": [
      "David",
      "Mary"
    ],
    "actions": [
      {
        "id": "1",
        "date": "2019-08-28"
      },
      {
        "id": "2",
        "date": "2019-08-29"
      },
      {
        "id": "3",
        "date": "2019-08-30"
      }
    ]
  },
  {
    "id": "bbb",
    "idMembers": [
      "Mar",
      "Alex"
    ],
    "actions": [
      {
        "id": "1",
        "date": "2019-07-28"
      },
      {
        "id": "2",
        "date": "2019-07-29"
      }
    ]
  }
]
我希望得到如下结果:

["David", "Mary", "1", "2019-08-28"]
["David", "Mary", "2", "2019-08-29"]
["David", "Mary", "3", "2019-08-30"]
["Mar", "Alex", "1", "2019-07-28"]
["Mar", "Alex", "2", "2019-07-29"]
我试过:

jq -c '.[] | [ .idMembers[], .actions[].id, .actions[].date] '
但结果是:

["David", "Mary", "1", "2", "3", "2019-08-28", "2019-08-29", "2019-08-30"]
["Mar", "Alex", "1", "2", "2019-07-28", "2019-07-29"]
我想做一些事情,比如:

jq -c '.[] | .idMembers[], .actions[] | [ .id, .date] '
但它会回报我

jq:错误(at:1268):无法索引字符串为“id”的字符串

有可能做类似的事情吗

jq -c '.[] | .actions[] | [.idMembers[], .id, .date] '

操作
下的每个对象中创建一个数组,并将其添加到
idMembers

.[] | .idMembers + (.actions[] | map(.))
map(.)
也可以写成
[.]]
。为了澄清,上述内容与以下内容相同:

.[] | .idMembers + (.actions[0] | map(.)),
      .idMembers + (.actions[1] | map(.)),
      .idMembers + (.actions[2] | map(.)),
                            ...
      .idMembers + (.actions[n] | map(.))

其中
n
操作中的元素数

谢谢您的回复:)!你知道我如何在地图(.)only.id中选择吗?我尝试了`.[]|.idMembers+(.actions[]| map(.id))``但没有work@Joakin在这种情况下,您需要将
映射(.)
替换为
[.id]