【问题标题】:Json filter not working on array while using jq [duplicate]使用 jq 时 Json 过滤器无法处理数组 [重复]
【发布时间】:2021-10-30 23:11:32
【问题描述】:

我有以下 json 格式并尝试使用 jq 对其进行过滤。 我的要求是打印“读取交易”值。 一、尝试了以下但没有成功。

validator-info --json | jq .Node_info.Metrics[].read-transactions

预期输出为 0.1233

知道我在这里缺少什么吗?

{
Node_info": {
    "Metrics": {
      "Delta": 0.12,
      "Lambda": 2410,
      "Omega": 220,
      "average-per-second": {
        "read-transactions": 0.1233,
        "write-transactions": 0.122334
      },
      }
      }
}

【问题讨论】:

    标签: json filtering jq


    【解决方案1】:

    以下应该有效。这是根据这个答案https://stackoverflow.com/a/37344498/1109657

    validator-info --json | jq '.Node_info.Metrics."average-per-second"."read-transactions"'
    

    【讨论】:

      【解决方案2】:

      Json 过滤器在使用 jq 时在数组上不起作用

      您的 JSON 中没有数组,只有对象


      由于您的路径中有一些-,您需要像这样将密钥作为字符串传递:

      jq '.Node_info.Metrics."average-per-second"."read-transactions"'
      

      这将输出(使 JSON 有效后):

      0.1233
      

      JqPlay Demo

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-18
        • 1970-01-01
        • 2023-01-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多