Json对象与Json字符串互转(4种转换方式)

来源:互联网 发布:jdk 7u40 linux x64 编辑:程序博客网 时间:2024/05/22 23:59

Json对象与Json字符串互转(4种转换方式)


1>jQuery插件支持的转换方式: 


1.1 使用JSON 格式字符串生成json对象 (json对象的叫法不准确,准确的应该为js对象,js对象声明方式,请点这里查看)

在 jQuery 中已经提供了对于解析 JSON 的内在支持,jQuery.parseJSON 函数提供了解析的支持

$.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象 

实例:

var obj = jQuery.parseJSON('{"name":"John"}');  alert( obj.name === "John" );

1.2 使用json对象生成 JSON 格式字符串

在 jQuery 中并没有提供直接将普通的 JavaScript 对象转换为 JSON 串的方法,可以使用下面的扩展库来完成。

jquery-json 扩展库

这个库用来扩展 jQuery ,对于 JSON 的使用,扩展了两个方法。

toJSON 方法用来将一个普通的 JavaScript 对象序列化为 JSON 串。


2>浏览器支持的转换方式(Firefox,chrome,opera,safari,ie9,ie8)等浏览器:

JSON.parse(jsonstr); //可以将json字符串转换成json对象 JSON.stringify(jsonobj); //可以将json对象转换成json对符串 

实例1:

var a={"name":"tom","sex":"男","age":"24"};
var aToStr = JSON.stringify(a);alert(aToStr); //结果:{"name":"tom","sex":"男","age":"24"}
  实例2:
var student = new Object();student.name = "leinov";student.sex = "famle";student.address = "chaoyang";var jsonStudent = JSON.stringify(student);alert(typeof jsonStudent); //string
注:ie8(兼容模式),ie7和ie6没有JSON对象,推荐采用JSON官方的方式,引入json.js。 


3>Javascript支持的转换方式: 
eval('(' + jsonstr + ')'); //可以将json字符串转换成json对象,注意需要在json字符外包裹一对小括号 
注:ie8(兼容模式),ie7和ie6也可以使用eval()将字符串转为JSON对象,但不推荐这些方式,这种方式不安全eval会执行json串中的表达式。 

4>JSON官方的转换方式: 
http://www.json.org/提供了一个json.js,这样ie8(兼容模式),ie7和ie6就可以支持JSON对象以及其stringify()和parse()方法; 
可以在https://github.com/douglascrockford/JSON-js上获取到这个js,一般现在用json2.js。


5>转换函数 实例(需要依赖于jquery):

将json字符串转为对象

function paresJson(json) {        var r;        try {            r = $.parseJSON(json);        } catch (e) {            r = eval("(" + json + ")");        }        return r;    };


0 0
原创粉丝点击