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

如何将jq输出的key=value键值对转换为逗号分隔字符串并解决join报错问题

解决jq转换JSON为逗号分隔key=value字符串的问题

我来帮你搞定这个问题!你之前遇到的错误是因为join(",")的使用时机不对——当你用to_entries[]迭代输出每个key=value字符串时,join接收到的是单个字符串而非数组,自然会报错说无法遍历字符串。

正确的jq命令

你需要先把所有生成的key=value字符串收集到一个数组里,再对数组执行join操作,命令如下:

jq -r '[to_entries[] | .key + "=" + .value] | join(",")' <(echo "$foo")

命令解释

  1. [to_entries[] | .key + "=" + .value]:用方括号把to_entries[]迭代生成的所有key=value字符串包裹成一个数组,比如会得到["app=myApp", "env=test", "tier=frontend"]
  2. | join(","):对这个数组执行逗号分隔的拼接操作,最终输出你想要的格式:app=myApp,env=test,tier=frontend

验证效果

假设你的foo变量存储的JSON是:

{"app": "myApp", "env": "test", "tier": "frontend"}

运行上述命令后,就能得到完全符合期望的逗号分隔字符串,直接存入变量即可:

result=$(jq -r '[to_entries[] | .key + "=" + .value] | join(",")' <(echo "$foo"))
echo $result
# 输出:app=myApp,env=test,tier=frontend

内容的提问来源于stack exchange,提问作者Tiya Jose

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 15:03:10