使用 jq 从多维 JSON 数组中选择第 n 个元素
Posted
技术标签:
【中文标题】使用 jq 从多维 JSON 数组中选择第 n 个元素【英文标题】:Select nth element from multidimensional JSON array with jq 【发布时间】: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
【参考方案1】:
你可以这样使用map
过滤器:
jq 'map(.[0])'
【讨论】:
现在,如何对结果应用字符串插值?【参考方案2】:另一个选项是jq '[.[][0]]'
这与使用 map(.[0])
的结果相同
【讨论】:
【参考方案3】:这是一个使用 reduce
的解决方案reduce .[] as $k ( null; . + [$k[0]] )
【讨论】:
以上是关于使用 jq 从多维 JSON 数组中选择第 n 个元素的主要内容,如果未能解决你的问题,请参考以下文章