解析JSON对象与字符串之间的相互转换


Posted in Javascript onDecember 18, 2013

在开发的过程中,如果对于少量参数的前后台传递,可以直接采用ajax的data函数,按json格式传递,后台Request即可,但有的时候,需要传递多个参数,这样后台

接受的时候Request多个很麻烦,此时要按照类的格式或者 集合的形式进行传递。

例如:前台按类的格式传递JSON对象:

var jsonUserInfo = "{\"TUserName\":\"" + userName + "\",\"TInterest\":\"" + interest + "\",\"TSex\":\"" + sex + "\",\"TCity\":\"" + city + "\",\"TDetail\":\"" + detail + "\"}";

如拼出的jsonUserInfo 无转义符号,需要var jsonArrayFinal = JSON.stringify(jsonArray);进行转换后再传递。

$.ajax(
                    {
                        type: "post",
                        url: "ReceiveHandler1.ashx",
                        data: { userInfo: jsonUserInfo, flag: "123456", key: "654321" },
                        dataType: "text",
                        success: function(data) {
                            $("#divShow").html(data);
                        }
 });

如果前台传递多个类格式的JSON数组,也就是集合类型:

例如:

[{"name":"a"},{"name","b"},{"name","c"}],则无法传递,此时必须使用JSON.stringify将数组对象转换成字符串,再进行AJAX传递即可。

比如我有两个变量,我要将a转换成字符串,将b转换成JSON对象:

var a={"name":"tom","sex":"男","age":"24"};
var b='{"name":"Mike","sex":"女","age":"29"}';

在Firefox,chrome,opera,safari,ie9,ie8等高级浏览器直接可以用JSON对象的stringify()和parse()方法。

JSON.stringify(obj)将JSON转为字符串。JSON.parse(string)将字符串转为JSON格式;

上面的转换可以这么写:
var a={"name":"tom","sex":"男","age":"24"};
var b='{"name":"Mike","sex":"女","age":"29"}';
var aToStr=JSON.stringify(a);
var bToObj=JSON.parse(b);
alert(typeof(aToStr));  //string
alert(typeof(bToObj));//object

JSON.stringify()

ie8(兼容模式),ie7和ie6没有JSON对象,不过http://www.json.org/js.html提供了一个json.js,这样ie8(兼容模式),ie7和ie6就可以支持JSON对象以及其stringify()和parse()方法;你可以在https://github.com/douglascrockford/JSON-js上获取到这个js,一般现在用json2.js。

ie8(兼容模式),ie7和ie6可以使用eval()将字符串转为JSON对象,

var c='{"name":"Mike","sex":"女","age":"29"}';
var cToObj=eval("("+c+")");
alert(typeof(cToObj));

jQuery中也有将字符串转为JSON格式的方法jQuery.parseJSON( json ),接受一个标准格式的 JSON 字符串,并返回解析后的 JavaScript (JSON)对象。当然如果有兴趣可以自己封装一个jQuery扩展,jQuery.stringifyJSON(obj)将JSON转为字符串。

Javascript 相关文章推荐
代码生成器 document.write()
Apr 15 Javascript
深入理解JavaScript系列(14) 作用域链介绍(Scope Chain)
Apr 12 Javascript
前后台交互过程中json格式如何解析以及如何生成
Dec 26 Javascript
javascript dom追加内容实现示例
Sep 21 Javascript
js通过元素class名字获取元素集合的具体实现
Jan 06 Javascript
jQuery实现购物车多物品数量的加减+总价计算
Jun 06 Javascript
JS编写函数实现对身份证号码最后一位的验证功能
Dec 29 Javascript
JavaScript获取URL参数的方法之一
Mar 24 Javascript
JavaScript同源策略和跨域访问实例详解
Apr 03 Javascript
vue中引用swiper轮播插件的教程详解
Aug 16 Javascript
Electron 如何调用本地模块的方法
Feb 01 Javascript
JavaScript实现表单验证功能
Dec 09 Javascript
cookie中的path与domain属性详解
Dec 18 #Javascript
浅析Cookie中的Path与domain
Dec 18 #Javascript
jquery.cookie用法详细解析
Dec 18 #Javascript
Event altKey,ctrlKey,shiftKey属性解析
Dec 18 #Javascript
extjs4 treepanel动态改变行高度示例
Dec 17 #Javascript
Javascript浅谈之this
Dec 17 #Javascript
将list转换为json失败的原因
Dec 17 #Javascript
You might like
PHP自动更新新闻DIY
2006/10/09 PHP
杏林同学录(二)
2006/10/09 PHP
详解php的魔术方法__get()和__set()使用介绍
2012/09/19 PHP
CI配置多数据库访问的方法
2016/03/28 PHP
thinkPHP3.2简单实现文件上传的方法
2016/05/16 PHP
PHP简单获取随机数的常用方法小结
2017/06/07 PHP
php实现的PDO异常处理操作分析
2018/12/27 PHP
PHP生成二维码与识别二维码的方法详解【附源码下载】
2019/03/07 PHP
javascript 跨浏览器开发经验总结(五) js 事件
2010/05/19 Javascript
jquery实现用户打分评分特效
2015/05/28 Javascript
MVVM模式中ViewModel和View、Model有什么区别?
2015/06/19 Javascript
javascript使用btoa和atob来进行Base64转码和解码
2017/03/20 Javascript
js实现放大镜特效
2017/05/18 Javascript
微信小程序非swiper组件实现的自定义伪3D轮播图效果示例
2018/12/11 Javascript
Javascript Web Worker使用过程解析
2020/03/16 Javascript
[02:46]2014DOTA2国际邀请赛 选手为你解读比赛MVP充满梦想
2014/07/09 DOTA
Python实现的一个找零钱的小程序代码分享
2014/08/25 Python
Python中的自省(反射)详解
2015/06/02 Python
python的文件操作方法汇总
2017/11/10 Python
在Python中实现shuffle给列表洗牌
2018/11/08 Python
我用Python抓取了7000 多本电子书案例详解
2019/03/25 Python
python-tkinter之按钮的使用,开关方法
2019/06/11 Python
python实现一个猜拳游戏
2020/04/05 Python
python中对二维列表中一维列表的调用方法
2020/06/07 Python
澳大利亚领先的在线美容商店:Facial Co
2017/10/22 全球购物
.NET常见笔试题集
2012/12/01 面试题
电台实习生求职信
2014/02/25 职场文书
优秀党支部书记事迹材料
2014/05/29 职场文书
超市七夕促销活动方案
2014/08/28 职场文书
法人代表证明书格式
2014/10/01 职场文书
学校党的群众路线教育实践活动总结材料
2014/10/30 职场文书
先进党组织事迹材料
2014/12/26 职场文书
《搭石》教学反思
2016/02/18 职场文书
股权投资协议书
2016/03/23 职场文书
Python 使用dict实现switch的操作
2021/04/07 Python
【2·13】一图读懂中国无线电发展
2022/02/18 无线电