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 obj = {"plugin":"jquery-json","version":2.4};
- //json = '{"plugin":"jquery-json","version":2.4}'
- var json = $.toJSON( obj );
- // 得到name值為:"jquery-json"
- var name = $.evalJSON( json ).plugin;
- // 得到version值為:2.4
- var version = $.evalJSON( json ).version;
jQuery核心庫下載地址:http://jquery.com/
沒有留言:
張貼留言