使用Javascript/jQuery将javascript对象转换为json格式数据 - 海涛的CSDN博客 - 博客频道 - CSDN.NET

时间:2021-01-15 19:14:09

body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI",Tahoma,Helvetica,Sans-Serif,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLiU,serif; font-size: 10.5pt; line-height: 1.5;}html, body{ }h1 { font-size:1.5em; font-weight:bold;}h2 { font-size:1.4em; font-weight:bold;}h3 { font-size:1.3em; font-weight:bold;}h4 { font-size:1.2em; font-weight:bold;}h5 { font-size:1.1em; font-weight:bold;}h6 { font-size:1.0em; font-weight:bold;}img { border:0; max-width: 100%;}blockquote { margin-top:0px; margin-bottom:0px;}table { border-collapse:collapse; border:1px solid #bbbbbb;}td { border-collapse:collapse; border:1px solid #bbbbbb;}使用Javascript/jQuery将javascript对象转换为json格式数据 - 海涛的CSDN博客 - 博客频道 - CSDN.NET

Javascript自带的eval()函数能够将json数据转换成Javascript对象。但是,却没有提供将Javascript对象序列化为json格式的函数。

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

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

  1. var json = '{"name":"John"}';  
  2. var obj = $.parseJSON(json);    
  3. alert( obj.name );    
var json = '{"name":"John"}';var obj = $.parseJSON(json);  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核心库结合使用):

  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;  
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.4var version = $.evalJSON( json ).version;

jQuery核心库下载地址:http://jquery.com/