现在位置首页 / 前端开发 /正文

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

作者: IT小兵 | 2015年4月28日| 热度:℃ | 评论: |参与:

 本站针对json的组织、解析、转换、传输有一些文章了,今天介绍一下json字符串与对象的相互转换。

       我们知道,如果在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转换为对象

//json转换为对象
var obj = eval('(' + str + ')');
或者 
var obj = str.parseJSON(); //json字符串转换为对象
或者
var obj = JSON.parse(str); //json字符串转换为对象

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

对象转成json

//对象转成json
可以运用 toJSONString()或者JSON.stringify()将JSON对象转化为JSON字符串。
var str=obj.toJSONString(); //将对象转成json
或者
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

//对象转成json
var thing = {plugin: 'jquery-json', version: 2.3};//js对象
var str = $.toJSON(thing);//转换为json,结果: '{"plugin":"jquery-json","version":2.3}'

json转成对象

//json转成对象
var  obj= $.evalJSON(str);
var name=obj.plugin;//js对象.属性,结果: "jquery-json"
var version =obj.version;//结果: 2.3

参考:



[利用JavaScript遍历JSON数组]

[jquery JSON的解析方式]

[js eval解析JSON中的注意点]

[jQuery $.post()返回类型为json时不进入回调函数的原因及解决方法]

[json序列化反序列化插件-json2.js 介绍和使用]

http://blog.csdn.net/chenleixing/article/details/45331003

点击阅读本文所属分类的更多文章: 前端开发 。和高手一起交流:346717337
友荐云推荐

未注明转发、原文均为本站原创。分享本文请注明 原文链接

给您更多信息和帮助

在这里您可以找到更多:

技术交流群:346717337 Jquery插件交流

投稿:[email protected]

承接:企业网站门户/微网站/微商城/CMS系统/微信公众号运营/业务咨询

echarts教程系列
本月最热文章

微信扫一扫,徜徉悠嘻网,您的休闲乐园

微信公众号:快乐每一天

随机文章
标签

技术交流群:346717337

投稿:[email protected]

专业专注:企业网站门户/微网站/微商城/CMS系统/微信公众号运营/付费问题咨询