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

使用jq转换JSON输出:合并endpoints下子数组并移除冗余键名

jq实现方案

你可以使用以下jq命令完成需求:

jq 'map(.endpoints |= ([.[]] | add))' input.json

命令说明

  • map(...):遍历输入的JSON数组,逐个处理每个服务对象
  • .endpoints |= (...):对每个服务对象的endpoints字段做原地修改,新值为括号内的运算结果
  • [.[]]:提取endpoints对象下所有键对应的数组值,组装为二维数组
  • add:将二维数组的所有子数组合并为一个一维数组,保留原始顺序和重复元素

如果你需要对合并后的endpoints数组去重,可以使用以下变种命令:

jq 'map(.endpoints |= ([.[]] | add | unique))' input.json

输出示例

执行第一条命令后,得到的合法JSON输出如下:

[
  {
    "serviceid": "service1",
    "endpoints": [
      "example1",
      "example2",
      "example3",
      "example4",
      "example3",
      "example4",
      "example5",
      "example6"
    ],
    "version": "1.0"
  },
  {
    "serviceid": "service2",
    "endpoints": [
      "example7",
      "example8",
      "example9",
      "example10"
    ],
    "version": "2.0"
  }
]

注:你给出的期望输出存在JSON语法错误,上述输出为修正语法后的合法结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 21:15:03