如何解析JSON输入

如何解析JSON输入,json,linux,jq,Json,Linux,Jq,在过去的两天里,我一直在阅读JQ-s文档,但没有找到如何提取值并将它们组合在一起 我有一些卷曲输出: ... { "key": "Agreement", "doc_count": 1603, "level_cnt": { "doc_count_error_upper_bound": 0, "sum_other_doc_count": 0, "buckets": [ { "key

在过去的两天里,我一直在阅读JQ-s文档,但没有找到如何提取值并将它们组合在一起

我有一些卷曲输出:

...
{
    "key": "Agreement",
    "doc_count": 1603,
    "level_cnt": {
        "doc_count_error_upper_bound": 0,
        "sum_other_doc_count": 0,
        "buckets": [
            {
            "key": "INFO",
            "doc_count": 1458
          },
          {
            "key": "ERROR",
            "doc_count": 145
          }
        ]
    }
}
...
任务是获取第一个键并将其与下一个键及其值组合:

协议
信息:1458
错误:145

问题是,当我试图解析必要的键时,它们的值在电子数据之后聚集在一起:

jq'.aggregations.controller\u cnt.bucket[].key、.aggregations.controller\u cnt.bucket[].level\u cnt.bucket[].key、.aggregations.controller\u cnt.bucket[].level\u cnt.bucket[].doc\u count

“协议”
“信息”
“错误”
1469
149

如何构建这个jq查询

先走一步

只需将其映射到字符串即可

jq --raw-output '.key, ( .level_cnt.buckets[] | "\(.key):\(.doc_count)" )'
通过以下输入:

{
    "key": "Agreement",
    "doc_count": 1603,
    "level_cnt": {
        "doc_count_error_upper_bound": 0,
        "sum_other_doc_count": 0,
        "buckets": [
            {
            "key": "INFO",
            "doc_count": 1458
          },
          {
            "key": "ERROR",
            "doc_count": 145
          }
        ]
    }
}
将输出:

Agreement
INFO:1458
ERROR:145

在进行测试。

您需要付出努力。请出示您的代码并说明您遇到的问题。另请参见和。