解析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 相关文章推荐
javascript实现动态增加删除表格行(兼容IE/FF)
Apr 02 Javascript
JavaScript 未结束的字符串常量常见解决方法
Jan 24 Javascript
JavaScript中圆括号()和方括号[]的特殊用法疑问解答
Aug 06 Javascript
angularJS中$apply()方法详解
Jan 07 Javascript
JQuery记住用户名密码实现下次自动登录功能
Apr 27 Javascript
node.js下LDAP查询实例分享
Sep 30 Javascript
jQuery+php实时获取及响应文本框输入内容的方法
May 24 Javascript
JavaScript中Object值合并方法详解
Dec 22 Javascript
Nuxt.js实现校验访问浏览器类型的中间件
Aug 24 Javascript
javascript实现计算指定范围内的质数示例
Dec 29 Javascript
vue使用websocket的方法实例分析
Jun 22 Javascript
vue中控制mock在开发环境使用,在生产环境禁用方式
Apr 06 Vue.js
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生成随机数或者字符串的代码
2008/09/05 PHP
TP5(thinkPHP5框架)实现显示错误信息及行号功能的方法
2019/06/03 PHP
window.open的功能全解析
2006/10/10 Javascript
ECMAScript 基础知识
2007/06/29 Javascript
再谈javascript面向对象编程
2012/03/18 Javascript
IE下使用jQuery重置iframe地址时内存泄露问题解决办法
2015/02/05 Javascript
javascript结合CSS实现苹果开关按钮特效
2015/04/07 Javascript
JS实现自动变化的导航菜单效果代码
2015/09/09 Javascript
jquery背景跟随鼠标滑动导航
2015/11/20 Javascript
学习JavaScript设计模式之观察者模式
2020/04/22 Javascript
javascript实现复选框全选或反选
2017/02/04 Javascript
js实现数字递增特效【仿支付宝我的财富】
2017/05/05 Javascript
ES6入门教程之let和const命令详解
2017/05/17 Javascript
react-redux中connect()方法详细解析
2017/05/27 Javascript
微信小程序组件之srcoll-view的详解
2017/10/19 Javascript
AngularJS ui-router刷新子页面路由的方法
2018/07/23 Javascript
使用koa2创建web项目的方法步骤
2019/03/12 Javascript
es6数组的flat(),flatMap()函数用法实例分析
2020/04/18 Javascript
JS异步宏队列微队列原理详解
2020/09/09 Javascript
ES11新增的这9个新特性,你都掌握了吗
2020/10/15 Javascript
Javascript数组及类数组相关原理详解
2020/10/29 Javascript
Python安装使用命令行交互模块pexpect的基础教程
2016/05/12 Python
简单易懂Pytorch实战实例VGG深度网络
2019/08/27 Python
Python 实现递归法解决迷宫问题的示例代码
2020/01/12 Python
python suds访问webservice服务实现
2020/06/26 Python
利用Python如何制作贪吃蛇及AI版贪吃蛇详解
2020/08/24 Python
以设计师精品品质提供快速时尚:PopJulia
2018/01/09 全球购物
写一个函数返回1+2+3+…+n的值(假定结果不会超过长整型变量的范围)
2014/09/05 面试题
计算机网络毕业生自荐信
2013/10/01 职场文书
读书小明星事迹材料
2014/05/03 职场文书
保护环境倡议书300字
2014/05/19 职场文书
2015年大学生村官工作总结
2015/04/21 职场文书
辩护词格式
2015/05/22 职场文书
python入门之算法学习
2021/04/22 Python
matplotlib如何设置坐标轴刻度的个数及标签的方法总结
2021/06/11 Python
「偶像大师 MILLION LIVE!」七尾百合子手办开订
2022/03/21 日漫