json字符串与对象的相互转换-javascript/jQuery

来源:互联网 发布:加内特生涯平均数据 编辑:程序博客网 时间:2024/04/29 10:07

前言

       我们知道,如果在Java中json对象与java对象的转换很简单就能实现,利用阿里巴巴的fastjson或者jackjson轻松实现,或者利用json包中的net包中的工具也可以实现,这里就不再讲,我们讲讲在js中对象与json字符串之间怎么相互转换,有时候不仅处理业务上需要这样的转化,而且你灵活运用的话,调试前台的时候很容易,比如一个页面无法跟踪这个页面的js过程,alert又是对象,输出[object]等,就是不知道自己想知道的那个js对象里存的啥数据,这时候利用下边我讲述的2种方法转成json字符串再alert就知道这个对象的各个属性和值了(不过console.log()和直接写入debugger;能起到相同调试的作用)别小看这一点,当你在特定的项目里山穷水尽无法调试对象的时候,这个可是“救命”的法儿,在这就把我的经验分享给大家了。好了,让我们看看以下两种转换方法吧。

方法一:json.js实现json与对象相互转换

        为了方便地处理JSON数据,JSON提供了json.js包,json.js免费下载地址

json转换为对象

[java] view plain copy
  1. //json转换为对象  
  2. var obj = eval('(' + str + ')');  
  3. 或者   
  4. var obj = str.parseJSON(); //json字符串转换为对象  
  5. 或者  
  6. var obj = JSON.parse(str); //json字符串转换为对象  


注意:如果obj本来就是一个JSON对象,那么运用 eval()函数转换后(哪怕是多次转换)还是JSON对象,但是运用 parseJSON()函数处理后会有疑问(抛出语法异常)。

对象转成json

[java] view plain copy
  1. //对象转成json  
  2. 可以运用 toJSONString()或者JSON.stringify()将JSON对象转化为JSON字符串。  
  3. var str=obj.toJSONString(); //将对象转成json  
  4. 或者  
  5. var last=JSON.stringify(obj); //将对象转成json  


以上除了eval()函数是js自带的之外,其他的多个要领都来自json.js包。新版本的 JSON 修改了 API,将 JSON.stringify() 和 JSON.parse() 两个函数都注入到了 JavaScript 的内建对象里面,前者变成了 Object.toJSONString(),而后者变成了 String.parseJSON()。如果提示找不到toJSONString()和parseJSON(),则说明您的json包版本太低。

 

方法二:jQuery.json实现json与对象相互转换

       jQuery.json 是 jQuery 的一个插件,可轻松实现对象和 JSON 字符串之间的转换。可序列化 JavaScript 对象、数值、字符串和数组到 JSON 字符串,同时可转换 JSON 字符串到 JavaScript,免费下载地址

对象转成json

[java] view plain copy
  1. //对象转成json  
  2. var thing = {plugin: 'jquery-json', version: 2.3};//js对象  
  3. var str = $.toJSON(thing);//转换为json,结果: '{"plugin":"jquery-json","version":2.3}'  


json转成对象

[java] view plain copy
  1. //json转成对象  
  2. var  obj= $.evalJSON(str);  
  3. var name=obj.plugin;//js对象.属性,结果: "jquery-json"  
  4. var version =obj.version;//结果: 2.3  


 

以上即为javasript中对象与json串之间转换的总结。

原创粉丝点击