JavaScript对象与JSON格式字符串的相互转换

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012815136/article/details/84637462

JavaScript对象与JSON格式字符串的相互转换

前言

在Web开发中,有时会遇到如下场景:前端向后台发起了一个请求(如ajax请求),让后台帮忙处理数据,接收到后台响应后在进行前端的一些交换处理。而后台接收参数、返回值都是JSON格式的字符串,这是就需要用到JavaScript对象与JSON格式字符串的相互转换了。

JavaScript对象转换为JSON格式字符串

  1. JSON.stringify()函数

    var testObj = {"hello":"world"};
    var jsonStr= JSON.stringify(testObj);
    

    语法:JSON.stringify(value[, replacer [, space]])

    注意:IE8(兼容模式),IE7和IE6不支持,可以通过引入JSON官方提供的json2.js文件使它们支持。

JSON格式字符串转换为JavaScript对象

  1. JavaScript eval() 函数

    var obj = eval('(' + jsonStr+ ')');
    

    优点:兼容性较高,IE8(兼容模式),IE7和IE6也可以支持

    缺点:安全性较低,eval()会执行json字符串中的表达式

  2. 浏览器内置支持的对象JSON

    var obj = JSON.parse(jsonStr);
    

    优点:依赖较低,支持主流浏览器(Firefox,chrome,opera,safari,IE9,IE8等浏览器)

    缺点:兼容性较低,IE8(兼容模式),IE7和IE6不支持,因为这些浏览器没有JSON对象

  3. 引入JSON官方提供的json2.js文件(推荐)

    var obj = JSON.parse(jsonStr);
    

    优点:可以看出是对方法2的补充,IE8(兼容模式),IE7和IE6就可以支持JSON对象以及其stringify()和parse()方法

    缺点:依赖性较高,需要引入其它文件

  4. 引入jQuery库(推荐)

    var obj = $.parseJSON(jsonstr); // jQuery.parseJSON(jsonstr)
    

    优点:兼容性较高

    缺点:依赖性较高,需要引入其它文件

参考

  1. 深入理解 JSON
  2. JavaScript中的JSON
  3. JSON官方网站
  4. JSON官方提供的json2.js文件

猜你喜欢

转载自blog.csdn.net/u012815136/article/details/84637462
今日推荐