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

如何使用JQ将特定格式数组元素合并为指定JSON结构?

使用JQ转换指定JSON结构的方法

问题说明

给定输入JSON数组:

[
  "public-policy-routing/0",
  "public-policy-routing/1",
  "public-policy-routing/5",
  "public-policy-routing/7",
  "public-policy-routing/10"
]

需要将其转换为如下键值对结构:

{ "public-policy-routing" : [0,1,5,7,10] }

解决方案

核心JQ命令

执行以下命令即可完成转换(假设输入文件名为input.json):

jq '{"public-policy-routing": map(split("/")[1] | tonumber)}' input.json

命令拆解

  • map(...):遍历输入数组的每一个元素
  • split("/"):将每个字符串按/分割为数组,例如"public-policy-routing/0"会被拆分为["public-policy-routing", "0"]
  • [1]:提取分割后数组的第二个元素(索引从0开始),即数字部分的字符串
  • tonumber:将字符串形式的数字转换为数值类型
  • 最后将处理后的数组包裹在指定键名的对象中

直接测试方式

如果不需要读取文件,可通过管道直接输入测试:

echo '[
  "public-policy-routing/0",
  "public-policy-routing/1",
  "public-policy-routing/5",
  "public-policy-routing/7",
  "public-policy-routing/10"
]' | jq '{"public-policy-routing": map(split("/")[1] | tonumber)}'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 14:36:24