[轉貼] 使用Javascript/jQuery將javascript對象轉換為json格式數據

2013081614:35
出處:http://blog.csdn.net/zht666/article/details/8701523

Javascript自帶的eval()函數能夠將json數據轉換成Javascript對象。但是,卻沒有提供將Javascript對象序列化為json格式的函數。

[javascript] view plaincopy
  1. var json = '{"name":"John"}';  
  2. var obj = eval( '(' + json + ')' );    
  3. alert( obj.name );  

jQuery中可以使用$.parseJSON(json)來將json轉換為Javascript對象,但卻沒有提供將Javascript對象轉換成json的函數。

[javascript] view plaincopy
  1. var json = '{"name":"John"}';  
  2. var obj = $.parseJSON(json);    
  3. alert( obj.name );    

如果我們要把Javascript對象轉化成json,發送給服務器,該怎麼辦呢?

其實很簡單,可以使用jquery.json插件。

插件下載地址:http://code.google.com/p/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核心庫結合使用):

[javascript] view plaincopy
  1. var obj = {"plugin":"jquery-json","version":2.4};  
  2. //json = '{"plugin":"jquery-json","version":2.4}'  
  3. var json = $.toJSON( obj );  
  4. // 得到name值為:"jquery-json"  
  5. var name = $.evalJSON( json ).plugin;  
  6. // 得到version值為:2.4  
  7. var version = $.evalJSON( json ).version;  

jQuery核心庫下載地址:http://jquery.com/