解析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 相关文章推荐
js location.replace与location.reload的区别
Sep 08 Javascript
jQuery 回车事件enter使用示例
Feb 18 Javascript
使用jquery实现放大镜效果
Sep 02 Javascript
jQuery左侧大图右侧小图焦点图幻灯切换代码分享
Aug 19 Javascript
基于JavaScript实现生成名片、链接等二维码
Sep 20 Javascript
动态创建按钮的JavaScript代码
Jan 29 Javascript
AngularJS中$http服务常用的应用及参数
Aug 22 Javascript
Vue2.0基于vue-cli+webpack Vuex的用法(实例讲解)
Sep 15 Javascript
浅谈Angular4中常用管道
Sep 27 Javascript
封装运动框架实战左右与上下滑动的焦点轮播图(实例)
Oct 17 Javascript
函数式编程入门实践(一)
Apr 20 Javascript
vue elementUI 表单校验的实现代码(多层嵌套)
Nov 06 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
使用HMAC-SHA1签名方法详解
2013/06/26 PHP
php实现查询百度google收录情况(示例代码)
2013/08/02 PHP
PHP fastcgi模式上传大文件(大约有300多K)报错
2014/09/28 PHP
PHP中非常有用却鲜有人知的函数集锦
2019/08/17 PHP
JS文本框追加多个下拉框的值的简单实例
2013/07/12 Javascript
javascript在IE下trim函数无法使用的解决方法
2014/09/12 Javascript
JQuery实现鼠标移动图片显示描述层的方法
2015/06/25 Javascript
js实现图片缓慢放大缩小效果
2016/08/02 Javascript
很酷的星级评分系统原生JS实现
2016/08/25 Javascript
浅谈jquery之on()绑定事件和off()解除绑定事件
2016/10/26 Javascript
输入框点击时边框变色效果的实现方法
2016/12/26 Javascript
C#微信小程序服务端获取用户解密信息实例代码
2017/03/10 Javascript
js实现自动图片轮播代码
2017/03/22 Javascript
vue-cli构建项目下使用微信分享功能
2018/05/28 Javascript
Vue.js获取手机系统型号、版本、浏览器类型的示例代码
2020/05/10 Javascript
python中sets模块的用法实例
2014/09/30 Python
详解Python中的join()函数的用法
2015/04/07 Python
Python字典实现简单的三级菜单(实例讲解)
2017/07/31 Python
Numpy数组的保存与读取方法
2018/04/04 Python
Python3获取拉勾网招聘信息的方法实例
2019/04/03 Python
pandas计算最大连续间隔的方法
2019/07/04 Python
用Python调用win命令行提高工作效率的实例
2019/08/14 Python
pyspark 随机森林的实现
2020/04/24 Python
Python ini文件常用操作方法解析
2020/04/26 Python
使用PyQt的QLabel组件实现选定目标框功能的方法示例
2020/05/19 Python
PyCharm上安装Package的实现(以pandas为例)
2020/09/18 Python
几款Python编译器比较与推荐(小结)
2020/10/15 Python
css3 border-image使用说明
2010/06/23 HTML / CSS
Nike瑞典官方网站:Nike.com (SE)
2018/11/26 全球购物
房地产财务管理制度
2014/02/02 职场文书
库房保管员岗位职责
2014/04/07 职场文书
学校周年庆活动方案
2014/08/22 职场文书
民族精神月活动总结
2014/08/28 职场文书
作息时间调整通知
2015/04/22 职场文书
预备党员考察表党小组意见
2015/06/01 职场文书
2016年教师党员创先争优承诺书
2016/03/24 职场文书