解析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 相关文章推荐
基于Jquery的回车成tab焦点切换效果代码(Enter To Tab )
Nov 14 Javascript
jquery $.fn $.fx是什么意思有什么用
Nov 04 Javascript
纯JavaScript实现的兼容各浏览器的添加和移除事件封装
Mar 28 Javascript
jquery实现表单验证并阻止非法提交
Jul 09 Javascript
理解js对象继承的N种模式
Jan 25 Javascript
浅谈Cookie的生命周期问题
Aug 02 Javascript
功能强大的jquery.validate表单验证插件
Nov 07 Javascript
JavaScript 完成注册页面表单校验的实例
Aug 19 Javascript
微信小程序修改swiper默认指示器样式的实例代码
Jul 18 Javascript
vue-cli 3.x配置跨域代理的实现方法
Apr 12 Javascript
layui监听工具栏的实例(操作列表按钮)
Sep 10 Javascript
javascript 模块依赖管理的本质深入详解
Apr 30 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
一个显示某段时间内每个月的方法 返回由这些月份组成的数组
2012/05/16 PHP
探讨如何把session存入数据库
2013/06/07 PHP
js+php实现静态页面实时调用用户登陆状态的方法
2015/01/04 PHP
php将HTML表格每行每列转为数组实现采集表格数据的方法
2015/04/03 PHP
PHP实现微信JS-SDK接口选择相册及拍照并上传的方法
2016/12/05 PHP
PHP工厂模式的日常使用
2019/03/20 PHP
javascript中length属性的探索
2011/07/31 Javascript
JS判断客户端是手机还是PC的2个代码
2014/04/12 Javascript
javascript中return,return true,return false三者的用法及区别
2015/11/17 Javascript
JavaScript禁止用户多次提交的两种方法
2016/07/24 Javascript
关于 jQuery Easyui异步加载tree的问题解析
2016/12/06 Javascript
Bootstrap table学习笔记(2) 前后端分页模糊查询
2017/05/18 Javascript
在vue-cli脚手架中配置一个vue-router前端路由
2017/07/03 Javascript
jQuery实现节点的追加、替换、删除、复制功能示例
2017/07/11 jQuery
JS Testing Properties 判断属性是否在对象里的方法
2017/10/01 Javascript
vue todo-list组件发布到npm上的方法
2018/04/04 Javascript
Vue.js中关于侦听器(watch)的高级用法示例
2018/05/02 Javascript
javascript原型链学习记录之继承实现方式分析
2019/05/01 Javascript
vue 计算属性和侦听器的使用小结
2021/01/25 Vue.js
Python中函数的参数定义和可变参数用法实例分析
2015/06/04 Python
Python中将字典转换为XML以及相关的命名空间解析
2015/10/15 Python
Python之自动获取公网IP的实例讲解
2017/10/01 Python
TensorFlow如何实现反向传播
2018/02/06 Python
Python删除n行后的其他行方法
2019/01/28 Python
详解Python正则表达式re模块
2019/03/19 Python
python读写csv文件方法详细总结
2019/07/05 Python
python制作英语翻译小工具代码实例
2019/09/09 Python
python中类与对象之间的关系详解
2020/12/16 Python
GUESS西班牙官方网上商城:美国服饰品牌
2017/03/15 全球购物
Laravel中Kafka的使用详解
2021/03/24 PHP
外企求职信范文分享
2013/12/31 职场文书
竞选班干部的演讲稿
2014/04/24 职场文书
售后客服个人自我评价
2014/09/14 职场文书
关于清明节的演讲稿2015
2015/03/18 职场文书
靠谱准确的求职信
2019/04/02 职场文书
Sql-Server数据库单表查询 4.3实验课
2021/04/05 SQL Server