解析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静态的url如何传递
May 03 Javascript
我遇到的参数传递中 双引号单引号嵌套问题
Feb 11 Javascript
HTML上传控件取消选择
Mar 06 Javascript
Jquery attr("checked") 返回checked或undefined 获取选中失效
Oct 10 Javascript
javascript进行四舍五入方法汇总
Dec 16 Javascript
jquery中toggle函数交替使用问题
Jun 22 Javascript
JavaScript实现自动消除按钮功能的方法
Aug 05 Javascript
javascript实现下拉提示选择框
Dec 29 Javascript
阿里巴巴技术文章分享 Javascript继承机制的实现
Jan 14 Javascript
一个简单不报错的summernote 图片上传案例
Jul 11 Javascript
封装的dialog插件 基于bootstrap模态对话框的简单扩展
Aug 10 Javascript
再谈Javascript中的异步以及如何异步
Aug 19 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购物车实现代码
2011/10/10 PHP
PHP 下载文件时自动添加bom头的方法实例
2014/01/10 PHP
PHP实现对数组分页处理实例详解
2017/02/07 PHP
JavaScript fontcolor方法入门实例(按照指定的颜色来显示字符串)
2014/10/17 Javascript
jQuery实现跟随鼠标运动图层效果的方法
2015/02/02 Javascript
js验证身份证号有效性并提示对应信息
2015/10/19 Javascript
多个js毫秒倒计时同时进行效果
2016/01/05 Javascript
详解js私有作用域中创建特权方法
2016/01/25 Javascript
vue2项目使用sass的示例代码
2017/06/28 Javascript
jQuery实现的鼠标滚轮控制图片缩放功能实例
2017/10/14 jQuery
vue项目中导入swiper插件的方法
2018/01/30 Javascript
html+jQuery实现拖动滑块图片拼图验证码插件【移动端适用】
2019/09/10 jQuery
Vue.js数字输入框组件使用方法详解
2019/10/19 Javascript
[45:18]完美世界DOTA2联赛循环赛 PXG vs IO 第二场 11.06
2020/11/09 DOTA
python 读取excel文件生成sql文件实例详解
2017/05/12 Python
使用Python实现简单的服务器功能
2017/08/25 Python
Python简单实现查找一个字符串中最长不重复子串的方法
2018/03/26 Python
python通过zabbix api获取主机
2018/09/17 Python
在Python中实现替换字符串中的子串的示例
2018/10/31 Python
Python生成器的使用方法和示例代码
2019/03/04 Python
python-web根据元素属性进行定位的方法
2019/12/13 Python
Django form表单与请求的生命周期步骤详解
2020/06/07 Python
基于Python+QT的gui程序开发实现
2020/07/03 Python
python 19个值得学习的编程技巧
2020/08/15 Python
BIBLOO捷克:购买女装、男装、童装、鞋和配件
2017/01/27 全球购物
澳大利亚一站式数码相机商店:CameraPro
2020/03/09 全球购物
面向对象编程是如何提高软件开发水平的
2014/05/06 面试题
建筑工程实习自我鉴定
2013/09/19 职场文书
教学实习自我评价
2014/01/28 职场文书
淘宝客服工作职责
2014/07/11 职场文书
商铺租房协议书范本
2014/12/04 职场文书
红高粱观后感
2015/06/10 职场文书
护理培训心得体会
2016/01/22 职场文书
原生JS封装vue Tab切换效果
2021/04/28 Vue.js
java实现对Hadoop的操作
2021/07/01 Java/Android
WebWorker 封装 JavaScript 沙箱详情
2021/11/02 Javascript