如何使用jq将json项目值映射到兄弟数组

Posted

技术标签:

【中文标题】如何使用jq将json项目值映射到兄弟数组【英文标题】:How to map json item value to sibling array with jq 【发布时间】:2019-06-04 06:30:45 【问题描述】:

像json一样

[
  
    "parent": "x",
    "children": ["a", "b"]
  ,
  
    "parent": "y",
    "children": ["c", "d", "e"]
  
]

如何用 jq 将其转换为 "[parent, child_order_number, child]" 项目的数组,例如

[
  ["x", 0, "a"],
  ["x", 1, "b"],
  ["y", 0, "c"],
  ["y", 1, "d"],
  ["y", 2, "e"]
]

?

【问题讨论】:

【参考方案1】:
jq -c '[.[] | range(.children|length) as $i | [.parent, $i, .children[$i]]]' file

产量:

[["x",0,"a"],["x",1,"b"],["y",0,"c"],["y",1,"d"],["y",2,"e"]]

【讨论】:

以上是关于如何使用jq将json项目值映射到兄弟数组的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 jq 按元素属性值过滤对象数组?

如何使用jq将两个文件中的数组合并到一个数组中?

如何将对象映射到数组以便可以将其转换为 csv?

jq 将对象键值映射到包含两者的对象数组

如何将可映射数组转换为 JSON?

如何使用 JQ 转换此 JSON 数据以依次将每个嵌套数组元素提取到顶层?