You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用jq将JSON中title数组的成对元素格式化输出为单行

解决JSON成对元素数组的单行输出问题

问题描述

我有一段包含facet_counts结构的JSON数据,其中facet_fields下的title数组由无标签的成对元素(如"primary",5981)组成。我希望将每对元素输出为单行,格式如:"primary",5981。目前使用命令jq -c '.facet_counts.facet_fields.title[]'时,数组的每个元素会被单独输出在一行,元素对被拆分,寻求正确的jq命令实现需求。

解决方案

可以使用jq的_nwise(2)过滤器将数组按每2个元素分组,再将每组格式化为目标样式:

方案1:用CSV格式直接输出

jq -r '.facet_counts.facet_fields.title | _nwise(2) | @csv'

命令说明

  • _nwise(2):把输入的一维数组按每2个元素为一组拆分,将["primary",5981,"secondary",345,...]转换为[["primary",5981],["secondary",345],...]
  • @csv:将每组子数组转换成标准CSV格式字符串,正好匹配"primary",5981的单行输出需求
  • -r:让jq输出原始字符串(避免额外的JSON格式引号包裹整行)

方案2:自定义格式拼接

如果需要更灵活的格式控制,也可以手动拼接字符串:

jq -r '.facet_counts.facet_fields.title | _nwise(2) | "\"\(.[0])\",\(.[1])"'

这个命令会直接生成"primary",5981格式的行,效果和CSV方案一致,但可按需调整分隔符或元素样式。

内容的提问来源于stack exchange,提问作者linux-guy1001

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 14:20:59