解析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 学习笔记(九)call和apply方法
Jan 11 Javascript
JS OffsetParent属性深入解析
Jan 13 Javascript
JavaScript使用replace函数替换字符串的方法
Apr 06 Javascript
node.js 使用ejs模板引擎时后缀换成.html
Apr 22 Javascript
超漂亮的jQuery图片轮播特效
Nov 24 Javascript
js面向对象的写法
Feb 19 Javascript
判断JS对象是否拥有某属性的方法推荐
May 12 Javascript
Bootstrap基本组件学习笔记之缩略图(13)
Dec 08 Javascript
Vue resource中的GET与POST请求的实例代码
Jul 21 Javascript
最通俗易懂的javascript变量提升详解
Aug 05 Javascript
js计算最大公约数和最小公倍数代码实例
Sep 11 Javascript
vue 页面跳转的实现方式
Jan 12 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
图书管理程序(三)
2006/10/09 PHP
编写php应用程序实现摘要式身份验证的方法详解
2013/06/08 PHP
php模拟post提交数据的方法
2015/02/12 PHP
在IE中调用javascript打开Excel的代码(downmoon原作)
2007/04/02 Javascript
Javascript调用C#代码
2011/01/17 Javascript
对javascript的一点点认识总结《javascript高级程序设计》读书笔记
2011/11/30 Javascript
JavaScript 更严格的相等 [译]
2012/09/20 Javascript
js拦截alert对话框另类应用
2013/01/16 Javascript
jquery cookie实现的简单换肤功能适合小网站
2013/08/25 Javascript
了解了这些才能开始发挥jQuery的威力
2013/10/10 Javascript
通过JQuery将DIV的滚动条滚动到指定的位置方便自动定位
2014/05/05 Javascript
JS按回车键实现登录的方法
2014/08/25 Javascript
Javascript中的五种数据类型详解
2014/12/26 Javascript
jQuery对指定元素中指定字符串进行替换的方法
2015/03/17 Javascript
jQuery消息提示框插件Tipso
2015/05/04 Javascript
javascript实现动态标签云
2015/10/16 Javascript
JS实现浏览器状态栏文字闪烁效果的方法
2015/10/27 Javascript
简述Matlab中size()函数的用法
2016/03/20 Javascript
Vue.JS项目中5个经典Vuex插件
2017/11/28 Javascript
解决await在forEach中不起作用的问题
2021/02/25 Javascript
Python内置模块hashlib、hmac与uuid用法分析
2018/02/12 Python
tensorflow入门之训练简单的神经网络方法
2018/02/26 Python
pyqt5 实现工具栏文字图片同时显示
2019/06/13 Python
python脚本当作Linux中的服务启动实现方法
2019/06/28 Python
Python笔记之工厂模式
2019/11/20 Python
pycharm运行scrapy过程图解
2019/11/22 Python
Python3和pyqt5实现控件数据动态显示方式
2019/12/13 Python
python-xpath获取html文档的部分内容
2020/03/06 Python
什么是python类属性
2020/06/10 Python
Python基于mediainfo批量重命名图片文件
2020/12/29 Python
纯CSS3制作页面切换效果的实例代码
2019/05/30 HTML / CSS
css3 实现滚动条美化效果的实例代码
2021/01/06 HTML / CSS
爱尔兰橄榄球店:Irish Rugby Store
2019/12/05 全球购物
中科软笔试题和面试题
2014/10/07 面试题
政风行风建设责任书
2014/07/23 职场文书
公司委托书格式范文
2014/10/09 职场文书