微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

json如何转对象

JSON是一种常见的数据格式,常用于前后端数据交互。在JavaScript中,我们可以将JSON字符串转换为JavaScript对象方便地进行操作。

  const jsonString = '{"name": "Tom","age": 18}';
  const obj = JSON.parse(jsonString);
  console.log(obj); // 输出:{name: "Tom",age: 18}

json如何转对象

在上面的代码中,使用了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是一个在解析时候调用函数,用于对解析后的每一个键值对进行处理。在我们的递归解析中,我们需要做如下处理:

  1. 使用JSON.stringify() + JSON.parse()对数组和对象进行深拷贝;
  2. 递归调用reviver函数对每个键值对进行处理;
  3. 对字符串类型的值调用trim()方法去除首尾空格。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐