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

TypeScript如何将JSON中number类型转为string且保留其余对象值不变

问题解决方法

你的代码报错核心原因是 Array.forEach() 方法没有返回值,执行后默认返回 undefined,你将该返回值直接赋值给 this.jsonData 覆盖了原有数据,自然输出为 undefined。
另外说明两点示例存在的问题:

  • 你给出的原始JSON和期望输出存在语法问题,标准数组结构不需要写 0:、1: 这类索引标注,直接按顺序存放元素即可
  • 期望输出中第二个对象的id值写为 "2" 属于笔误,正常转换后应为 "3"

方案1:直接修改原数据

如果允许修改原始的 this.jsonData 对象,直接执行遍历逻辑即可,不需要额外赋值:

Object.values(this.jsonData.data).forEach(function (item) {
  item.id = item.id.toString();
});
console.log(this.jsonData);

方案2:不修改原数据,生成新对象

如果需要保留原始数据不被改动,使用 map 方法生成新数组后重新构造对象即可:

this.jsonData = {
  // 保留其余顶层字段不变
  ...this.jsonData,
  data: this.jsonData.data.map(item => ({
    // 保留每个对象的其余字段不变
    ...item,
    id: item.id.toString()
  }))
};
console.log(this.jsonData);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 05:18:03