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
相关产品推荐
相关产品推荐

