解析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 DOM 学习第七章 表单的扩展
Feb 19 Javascript
基于node.js的快速开发透明代理
Dec 25 Javascript
JavaScript制作的可折叠弹出式菜单示例
Apr 04 Javascript
jQuery学习笔记之总体架构
Jun 03 Javascript
jQuery实现鼠标滑向当前图片高亮显示并且其它图片变灰的方法
Jul 27 Javascript
基于JS模仿windows文件按名称排序效果
Jun 29 Javascript
微信小程序 location API接口详解及实例代码
Oct 12 Javascript
Angular2 组件交互实例详解
Aug 24 Javascript
Vue-cropper 图片裁剪的基本原理及思路讲解
Apr 17 Javascript
微信小程序实现动态显示和隐藏某个控件功能示例
Dec 14 Javascript
layui radio点击事件实现input显示和隐藏的例子
Sep 02 Javascript
简单聊聊TypeScript只读修饰符
Apr 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
php 无限级数据JSON格式及JS解析
2010/07/17 PHP
PHP程序员面试 切忌急功近利(更需要注重以后的发展)
2010/09/01 PHP
php将csv文件导入到mysql数据库的方法
2014/12/24 PHP
php打包网站并在线压缩为zip
2016/02/13 PHP
URL编码转换,escape() encodeURI() encodeURIComponent()
2006/12/27 Javascript
htm调用JS代码
2007/03/15 Javascript
用户注册常用javascript代码
2009/08/29 Javascript
JQuery Tips(2) 关于$()包装集你不知道的
2009/12/14 Javascript
javascript 折半查找字符在数组中的位置(有序列表)
2010/12/09 Javascript
javascript针对DOM的应用分析(三)
2012/04/15 Javascript
JavaScript 用Node.js写Shell脚本[译]
2012/09/20 Javascript
使用indexOf等在JavaScript的数组中进行元素查找和替换
2013/09/18 Javascript
使用javascript实现有效时间的控制,并显示将要过期的时间
2014/01/02 Javascript
javascript基本类型详解
2014/11/28 Javascript
JS实现的鼠标跟随代码(卡通手型点击效果)
2015/10/26 Javascript
JavaScript中的boolean布尔值使用学习及相关技巧讲解
2016/05/26 Javascript
js实现带简单弹性运动的导航条
2017/02/22 Javascript
使用vue-cli打包过程中的步骤以及问题的解决
2018/05/08 Javascript
jQuery实现带3D切割效果的轮播图功能示例【附源码下载】
2019/04/04 jQuery
微信小程序bindinput与bindsubmit的区别实例分析
2019/04/17 Javascript
[51:06]DOTA2-DPC中国联赛 正赛 Elephant vs Aster BO3 第二场 1月26日
2021/03/11 DOTA
Python实现base64编码的图片保存到本地功能示例
2018/06/22 Python
Django添加KindEditor富文本编辑器的使用
2018/10/24 Python
基于Python函数和变量名解析
2019/07/19 Python
python 控制Asterisk AMI接口外呼电话的例子
2019/08/08 Python
python并发编程多进程 互斥锁原理解析
2019/08/20 Python
Expected conditions模块使用方法汇总代码解析
2020/08/13 Python
css3 响应式媒体查询的示例代码
2019/09/25 HTML / CSS
Mavi牛仔裤美国官网:土耳其著名牛仔品牌
2016/09/24 全球购物
Mistine官方海外旗舰店:泰国国民彩妆品牌
2016/12/28 全球购物
学生乘坐校车安全责任书
2015/05/11 职场文书
情况说明书格式及范文
2019/06/24 职场文书
一文搞懂python异常处理、模块与包
2021/06/26 Python
TypeScript中条件类型精读与实践记录
2021/10/05 Javascript
python 详解turtle画爱心代码
2022/02/15 Python
CSS font-variation 可变字体的魅力(实例详解)
2022/03/03 HTML / CSS