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

JavaScript中如何将第三方API返回的JSON对象转为对象数组?

解决方法:将键索引的JSON对象转换为目标格式的对象数组

没问题,这个转换用JavaScript原生API就能轻松搞定,我给你详细拆解步骤和代码示例:

1. 先明确原始数据与目标格式

假设你从第三方API拿到的原始JSON结构是这样的:

const apiResponse = {
  product1: { name: "无线耳机", price: 299 },
  product2: { name: "机械键盘", price: 499 },
  product3: { name: "蓝牙音箱", price: 199 }
};

你需要转换成的目标格式是:

{
  arrayName: [
    { key: "product1", name: "无线耳机", price: 299 },
    { key: "product2", name: "机械键盘", price: 499 },
    { key: "product3", name: "蓝牙音箱", price: 199 }
  ]
}

2. 核心转换代码

我们可以用Object.entries()配合map()方法一步完成转换:

// 1. 把原始对象拆解为[键, 值]组成的二维数组;2. 遍历重构每个元素
const transformedArray = Object.entries(apiResponse).map(([itemKey, itemData]) => {
  return {
    key: itemKey, // 这里的字段名可以自定义,比如改成id、itemId都行
    ...itemData   // 快速把原始对象的所有属性复制到新对象中
  };
});

// 最后包裹成带arrayName的对象
const finalResult = {
  arrayName: transformedArray
};

3. 关键方法说明

  • Object.entries(obj):将对象转换为[键名, 对应值]的二维数组,比如上面的apiResponse会变成[["product1", {...}], ["product2", {...}]]
  • Array.map():遍历数组的每一项,把每组键值对重构为你需要的对象格式
  • 扩展运算符...:避免手动逐个复制属性,直接把原始对象的所有键值对展开到新对象里

自定义调整

如果需要修改新对象里的字段名(比如把key改成productId),只需要修改return里的属性名即可:

return {
  productId: itemKey, // 自定义字段名
  ...itemData
};

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:40:02