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

如何使用JQ将多JSON对象转换为指定键值对结构?

解决方案

首先要注意:你给出的原始内容是两个独立的JSON对象,不符合合法JSON结构,需要先将它们整理为对象数组(或者先解析成数组形式的JS对象),才能进行后续转换。

步骤1:整理原始数据

假设你的数据已经是JS数组格式:

const originalData = [
  {
    "name": "abc",
    "version": "1234"
  },
  {
    "name": "xyz",
    "version": "6789"
  }
];

如果是字符串形式的非法JSON,可以先修复并解析:

const rawJsonStr = `{"name": "abc","version": "1234"}{"name": "xyz","version": "6789"}`;
// 把两个对象的连接处替换为数组分隔符,再包裹成数组
const parsedData = JSON.parse(`[${rawJsonStr.replace(/}{/g, '},{')}]`);

步骤2:用reduce实现转换

使用reduce方法可以直接生成目标格式的对象:

const result = parsedData.reduce((acc, item) => {
  acc[item.name] = item.version;
  return acc;
}, {});

console.log(result);
// 输出:{ "abc": "1234", "xyz": "6789" }

代码说明

  • reduce的初始值是一个空对象{},作为累加器acc的起始状态。
  • 遍历数组时,将每个对象的name作为键、version作为值,添加到累加器中。
  • 每次迭代返回更新后的累加器,最终得到目标结构的对象。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 02:43:15