【问题标题】:Select nth element from multidimensional JSON array with jq使用 jq 从多维 JSON 数组中选择第 n 个元素
【发布时间】:2013-09-21 04:31:37
【问题描述】:

如何使用jq 来转换这个数组数组:

[
  [
    "sequence",
    "int"
  ],
  [
    "time",
    "string"
  ],
  ...
]

放入包含每个子数组的第一个 (0) 元素的数组?意思是产生这样的输出:

[
    "sequence",
    "time",
    ...
]

我正在考虑使用reduce xx as $item (...),但我没有想出任何有用的东西。

【问题讨论】:

  • jq 是一个 C 程序。为什么要标记为 jquery?
  • 你指的是 jq 的 jQuery 吗?
  • 我试图标记为 jq,但现在我看到如果你这样做,所以将标记更改为 jquery...你实际上不能标记 jq
  • @Dreen - 供将来参考,因为 jq is defined as a synonym for jquery 在 Stack Overflow 的标签系统中,当您提交问题时它会发生变化。我无权撤消此操作(@SomeoneReadingThisWhoDoesHaveThisPrivilege - 我认为可以这样做,因为从未使用过 jq 同义词)我已用全新的 jq-json-processor 标签为您解决了问题。
  • 干杯@MathijsFlietstra

标签: json command-line data-manipulation jq


【解决方案1】:

你可以这样使用map过滤器:

jq 'map(.[0])'

【讨论】:

  • 现在,如何对结果应用字符串插值?
【解决方案2】:

另一个选项是jq '[.[][0]]'

这与使用 map(.[0]) 的结果相同

【讨论】:

    【解决方案3】:

    这是一个使用 reduce

    的解决方案
    reduce .[] as $k ( null; . + [$k[0]] )
    

    【讨论】:

      猜你喜欢
      • 2021-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-30
      • 1970-01-01
      • 2021-09-21
      • 1970-01-01
      相关资源
      最近更新 更多