您的位置:首页 > Web前端 > JQuery

使用Javascript/jQuery将javascript对象转换为json格式数据

2014-03-05 17:14 906 查看
Javascript自带的eval()函数能够将json数据转换成Javascript对象。但是,却没有提供将Javascript对象序列化为json格式的函数。

var json = '{"name":"John"}';
var obj = eval( '(' + json + ')' );
alert( obj.name );

jQuery中可以使用$.parseJSON(json)来将json转换为Javascript对象,但却没有提供将Javascript对象转换成json的函数。

var json = {"name":"John"};
var obj = $.parseJSON(json);
alert( obj.name );

如果我们要把Javascript对象转化成json,发送给服务器,该怎么办呢?
其实很简单,可以使用jquery.json插件。
 
当前版本如下:jquery.json-2.4.js (压缩版:jquery.json-2.4.min.js)
该插件提供了4个函数,用于解析和反解析json,具体如下:
•toJSON:将javascript的object, number, string, 或 array 转换成 JSON数据。
•evalJSON:把JSON格式数据转换成Javascript对象,速度很快,不过这点速度微不足道(作者自己说的)。
•secureEvalJSON:把JSON 转换成 Javascript对象,但是转换之前会检查被转换的数据是否是 JSON格式的。
•quoteString:在字符串两端添加引号,并智能转义(跳过)任何引号,反斜杠,或控制字符。
使用例子(注意需要和jQuery核心库结合使用):

var json = { plugin: 'jquery-json', version: 2.4 };

// '{"plugin":"jquery-json","version":2.4}'
var encoded = $.toJSON( json);
// 得到name值为:"jquery-json"
var name = $.evalJSON( encoded ).plugin;
// 得到version值为:2.4
var version = $.evalJSON(encoded).version;


转载:http://www.2cto.com/kf/201303/197265.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  json 插件