JQ如何通过转义从内部数组中读取数据

JQ how to read data from inner array with escaping

我的 json 看起来像:

{
    "response": {
        "resNum": 222222,
        "start": 0,
        "array": [{
            "tr_id": "xx33fg",
            "user_id": "6678",
            "x_date": "2021-04-27",
            "list": [
                "[{\"id\":\"123\",\"val2\":\"RX\",\"date\":\"2020-11-13\"}",
                "{\"id\":\"456\",\"val2\":\"DB\",\"date\":\"2020-09-20\"}]"
            ]
        }]
    }
}

我需要把它转换成这样:

{
  "Result": [
    {
      "x_date": "2021-04-10",
      "array": [
        {
          "id": "345",
          "val2": "RX",
          "date": "2021-04-10"
        },
        {
          "id": "223",
          "val2": "XC",
          "date": "2021-04-10"
        }
      ]
    }
  ]
}

如何使用 jq 从列表中读取 idval2date?我试过了

id: .response? | .array[]? | .list[]? | .id

但是没有成功,我得到一个错误。我认为带有转义的嵌套数组是原因。有人可以帮我吗?谢谢!

使用 fromjson 对字符串进行反转义。

jq '.response.array[]
    | {Result:[{x_date, array: .list
                | join(",")
                | fromjson}]}'

输出与您发布的不同,但我不知道您想如何翻译这些值。