JSON是一种常见的数据格式,常用于前后端数据交互。在JavaScript中,我们可以将JSON字符串转换为JavaScript对象方便地进行操作。
const jsonString = '{"name": "Tom","age": 18}'; const obj = JSON.parse(jsonString); console.log(obj); // 输出:{name: "Tom",age: 18}
在上面的代码中,使用了JSON.parse()方法将JSON字符串转换为JavaScript对象。JSON.parse()方法接收一个JSON字符串作为参数,返回与JSON字符串对应的JavaScript对象。注意,JSON字符串中的属性名必须使用双引号包裹,否则将无法被解析。
如果JSON中存在嵌套对象或数组,我们可以通过递归的方式将JSON转换为JavaScript对象。
const jsonString = '{"name": "Tom","age": 18,"friends": [{"name": "John","age": 19},{"name": "Mary","age": 20}]}'; const obj = JSON.parse(jsonString,(key,value) => { if (typeof value === 'object') { if (Array.isArray(value)) { value = value.map(item => JSON.parse(JSON.stringify(item),(childKey,childValue) => { const newChildValue = typeof childValue === 'string' ? childValue.trim() : childValue; return newChildValue; })); } else { value = JSON.parse(JSON.stringify(value),childValue) => { const newChildValue = typeof childValue === 'string' ? childValue.trim() : childValue; return newChildValue; }); } } const newValue = typeof value === 'string' ? value.trim() : value; return newValue; }); console.log(obj); // 输出:{ name: "Tom",age: 18,friends: [ { name: "John",age: 19 },{ name: "Mary",age: 20 } ] }
在上面的代码中,我们使用了JSON.parse()方法的第二个参数——reviver,来实现递归解析。reviver是一个在解析时候调用的函数,用于对解析后的每一个键值对进行处理。在我们的递归解析中,我们需要做如下处理:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。