如何用JavaScript将JSON中特定元素转换为整数?
如何在JavaScript中仅将JSON特定元素转为整数(不修改整体结构)
作为JavaScript新手,我想在不改动整个JSON结构的前提下,把其中指定元素转换成整数。
输入JSON:
{ "Response" : { "Data" : { "Type" : "Set", "Serial" : "75798" } } }
期望输出JSON:
{ "Response" : { "Data" : { "Type" : "Set", "Serial" : 75798 } } }
我知道有parseInt函数,但不知道怎么写完整的代码实现这个需求。
实现步骤
- 解析JSON为可操作对象:用
JSON.parse()把原始JSON字符串转成JavaScript对象,这样才能修改内部属性。 - 定位并转换目标属性:通过对象层级路径找到
Serial属性,用parseInt()将其字符串值转为整数。 - 转回格式化JSON字符串:用
JSON.stringify()把修改后的对象重新转成带缩进的JSON字符串,匹配期望格式。
完整代码示例
// 原始JSON字符串 const originalJson = `{ "Response" : { "Data" : { "Type" : "Set", "Serial" : "75798" } } }`; // 解析为JavaScript对象 const dataObj = JSON.parse(originalJson); // 将Serial属性转为整数(指定十进制解析避免意外) dataObj.Response.Data.Serial = parseInt(dataObj.Response.Data.Serial, 10); // 也可以用更简洁的Number():dataObj.Response.Data.Serial = Number(dataObj.Response.Data.Serial); // 转回带缩进的JSON字符串 const modifiedJson = JSON.stringify(dataObj, null, 3); // 输出结果 console.log(modifiedJson);
代码说明
JSON.parse():将JSON字符串转为JS对象,是修改内部属性的前提。parseInt(value, 10):第二个参数10强制使用十进制解析,防止字符串以0开头时被识别为八进制的问题。JSON.stringify(dataObj, null, 3):第三个参数3设置缩进为3个空格,让输出的JSON结构和期望格式一致,可读性更强。
内容的提问来源于stack exchange,提问作者Lenka
相关产品推荐
相关产品推荐

