繁体   English   中英

如何使用 jq 将值与 JSON 中另一个数组的每个元素组合在一起?

[英]how to combine a value with each of the element of another array in a JSON using jq?

JSON 像这样:

[
  {
    "id": 1,
    "names": [
      "apple",
      "google"
    ]
  },
  {
    "id": 2,
    "names": [
      "iphone",
      "ipad",
      "macbook"
    ]
  }
]

tsv 中的预期 output

1 apple
1 google
2 iphone
2 ipad
2 macbook

您可以使用map

以及原始输出选项,例如

jq -r 'map( "\(.id) " + .names[] )[]'

演示

或格式化为tsv

jq -r 'map( "\(.id) " + .names[] ) | @tsv'

在单行上输出结果

演示

或使用

jq -r 'map( "\(.id)\t" + .names[])[]'

为了在属性之间获得制表符分隔的结果,同时在单独的行上返回每个组合

演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM