【问题标题】:jq command returning nulljq 命令返回 null
【发布时间】:2019-04-28 19:51:45
【问题描述】:

我的示例文件中有以下 json 内容,但在使用 jq 命令时,结果始终为空:

{
    "listingRequest": {
        "id": "016a1050-82dc-1262-cc9b-4baf3e0b7123",
        "uri": "http://localhost:9090/nifi-api/flowfile-queues/016a104a-82dc-1262-7d78-d84a704abfbf/listing-requests/016a1050-82dc-1262-cc9b-4baf3e0b7123",
        "submissionTime": "04/28/2019 19:40:58.593 UTC",
        "lastUpdated": "19:40:58 UTC",
        "percentCompleted": 0,
        "finished": false,
        "maxResults": 100,
        "state": "Waiting for other queue requests to complete",
        "queueSize": {
            "byteCount": 480,
            "objectCount": 20
        },
        "sourceRunning": false,
        "destinationRunning": false
    }
}

我想检索字节计数的值,即 byteCount。结果应该是 480。

但下面是我得到的输出:

cat queue.json | jq -r '.byteCount'
null

我刚刚发现 jq 工具由于限制无法安装在我们的服务器上。

如何通过 sed/grep 进行操作?我试过grep -Po '"byteCount":.*?[^\\]",',但没有得到任何输出

【问题讨论】:

    标签: json sh jq


    【解决方案1】:

    您需要指定完整路径:

    $ jq '.listingRequest.queueSize.byteCount' file.json
    480
    

    【讨论】:

      【解决方案2】:

      指定完整路径的替代方法是使用..,例如

      $ jq '.. | .byteCount? // empty' queue.json 
      480
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-04-14
        • 2019-09-10
        • 1970-01-01
        • 1970-01-01
        • 2022-01-23
        • 1970-01-01
        • 1970-01-01
        • 2017-04-13
        相关资源
        最近更新 更多