使用 jq 解析和映射 2 个数组

mr *_*i.o 1 json jq

我正在使用类似于以下的 JSON 文件:

{   "Response" : {
    "TimeUnit" : [ 1576126800000 ],
    "metaData" : {
      "errors" : [ ],
      "notices" : [ "query served by:1"]
    },
    "stats" : {
      "data" : [ {
        "identifier" : {
          "names" : [ "apiproxy", "response_status_code", "target_response_code", "target_ip" ],
          "values" : [ "IO", "502", "502", "7.1.143.6" ]
        },
        "metric" : [ {
          "env" : "dev",
          "name" : "sum(message_count)",
          "values" : [ 0.0]
        } ]
      } ]
    }   } }
Run Code Online (Sandbox Code Playgroud)

我的目标是显示标识符和值的映射,例如:

apiproxy=IO
response_status_code=502
target_response_code=502 
target_ip=7.1.143.6
Run Code Online (Sandbox Code Playgroud)

我已经能够解析名称和值

.[].stats.data[] | (.identifier.names[]).[].stats.data[] | (.identifier.values[])

但我需要 jq 方式来映射值的帮助。

pea*_*eak 6

整个过程可以在 jq 中使用 -r 命令行选项完成:

.[].stats.data[]
| [.identifier.names, .identifier.values]
| transpose[]
| "\(.[0])=\(.[1])"
Run Code Online (Sandbox Code Playgroud)