【问题标题】:jq function to convert a stream of strings into a single arrayjq 函数将字符串流转换为单个数组
【发布时间】:2021-11-19 18:27:03
【问题描述】:

我正在尝试获取 JSON 文档中所有可能路径的数组。

给定文件:

{
  "a": "bar",
  "b": [
   {"c": 3}, {"d": 6},
   {"c": 7}, {"d": 5}
  ]
}

我希望输出为: ["","a","b","b/0","b/0/c","b/1","b/1/d","b/2","b/2 /c","b/3","b/3/d"]

我已经很接近了,这是 JQ Playground 上的 snippet

【问题讨论】:

  • 只需将表达式括在方括号中。由于您的tostring 是不必要的,因此您最终会得到[path(..)|[.[]]|join("/")]
  • @peak 为什么使用 .. | [.[]] | .. 而不仅仅是 [path(..) | join("/")]
  • @pmf - 我只是在回答“标题”中的问题。 “你最终得到”的隐含补充是“从你的方法开始”。

标签: jq


【解决方案1】:

试试

jq '["", (paths | join("/"))]'

Demo

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-24
    • 1970-01-01
    • 1970-01-01
    • 2020-01-03
    • 2016-04-02
    相关资源
    最近更新 更多