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

如何在不使用jq标志的情况下将JSON数组值转为逗号分隔格式?

问题描述

现有JSON数据:

{"foo": [
      {
        "bar": "baz"
      },
      {
        "bar": "baz"
      },
      {
        "bar": "baz"
      }
    ]
}

希望通过jq将其转换为:

"baz", "baz", "baz"

目前使用.foo.[].bar执行后,结果是每个值单独一行、无逗号分隔:

"baz"
"baz"
"baz"

要求不使用jq任何命令行标志实现需求。

解决方法

方案1:利用数组join()方法

先提取所有bar字段值组成数组,再用, 作为分隔符拼接成目标字符串:

.foo | map(.bar) | join(", ")

该表达式会直接输出符合要求的逗号分隔格式。

方案2:通过reduce手动拼接(灵活度更高)

如果需要更精细控制输出逻辑,可以用reduce遍历数组,自动处理分隔符:

.foo | reduce .[] as $item (""; . + (if . == "" then "" else ", " end) + "\"\($item.bar)\"")

它会逐个拼接每个bar值,仅在非首个元素前添加, 分隔符,最终生成目标格式。

内容的提问来源于stack exchange,提问作者Rao Komar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 02:13:20