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

如何在JavaScript中替换对象键名?API响应键名修改求助

问题解决:修改API响应对象的键名

你的代码问题分析

你当前的代码存在几个核心错误,导致返回空数组:

  1. 遍历对象的方式错误:for (let dict in dicts)遍历的是对象的键名(比如"sales"、"city"这些字符串),不是整个对象。所以const dictionary = dict得到的是字符串,而非你要操作的原对象。
  2. Object.assign用法完全错误:你写的Object.assign(dictionary, { name: dictionary.oldKey })['city']里,oldKey是不存在的变量,而且['city']的写法毫无意义,根本达不到映射键名的目的。
  3. 操作对象错误:你试图修改字符串类型的dictionary,字符串是不可变类型,后续的delete操作也完全无效,最后push到数组里的都是无效内容。

正确解决方案

根据你的需求,分两种常见场景给出代码:

场景1:API返回的是单个对象(即你的示例data是单个JSON对象)

直接创建新对象,映射原键到目标键即可:

// 转换单个对象
const transformedData = {
  value: data.sales,
  name: data.city
};
return transformedData;

场景2:API返回的是对象数组(比如你误以为data是数组,所以用了循环)

用map方法遍历数组,逐个转换对象:

// 转换对象数组
const transformedArray = data.map(item => ({
  value: item.sales,
  name: item.city
}));
return transformedArray;

额外说明

如果你一定要修改原对象(不推荐,因为可能影响其他使用原对象的逻辑),可以这样写:

// 修改原对象(不推荐)
data.value = data.sales;
data.name = data.city;
delete data.sales;
delete data.city;
return data;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 06:22:34