【问题标题】:simple jq filter has null results简单的 jq 过滤器有空结果
【发布时间】:2016-08-18 19:59:38
【问题描述】:

我正在使用过滤器

[.bar_1.baz_a, .bar_1.baz_b, .bar_2.qux_1,.bar_2.qux_2]

在以下 JSON 上,它返回四个空值,而不是两行,每行包含四个无意义数据元素。这是我第一次尝试过滤器,我不理解什么概念?

{
  "version": "0.1",
  "foos": [
    {
      "bar_1": {
        "baz_a": 673396201,
        "baz_b": "dfgsfg"
      },
      "bar_2": {
        "qux_1": "ghjhj",
        "qux_2": "Q"
      }
    },
    {
      "bar_1": {
        "baz_a": 674567484,
        "baz_b": "tyutyj"
      },
      "bar_2": {
        "qux_1": "bnmn",
        "qux_2": "Z"
      }
    }
  ]
}

【问题讨论】:

    标签: jq


    【解决方案1】:

    根对象没有bar1bar2 键;这些出现在分配给名称foos 的数组中的对象中。将您的过滤器与

    进行比较
    jq '.foos[] | [.bar_1.baz_a, .bar_1.baz_b, .bar_2.qux_1,.bar_2.qux_2]' tmp.json
    

    【讨论】:

    • 谢谢。我试图在一个过滤器中完成所有工作,而我本应该将一个过滤器连接到另一个过滤器。作为一个额外的问题,知道为什么将这个结果传递给 join(",") 会失败吗?
    • 只能加入JSON字符串,但674567484是JSON数。
    • 再次感谢。我将研究如何将数字转换为字符串。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-14
    • 2021-06-24
    • 2017-07-08
    • 1970-01-01
    相关资源
    最近更新 更多