解析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 '行 4954 错误: 不支持该属性或方法' 的问题解决方法
Jan 19 Javascript
容易被忽略的JS脚本特性
Sep 13 Javascript
js实现搜索框关键字智能匹配代码
Mar 26 Javascript
JavaScript通过HTML的class来获取HTML元素的方法总结
May 24 Javascript
利用JavaScript在网页实现八数码启发式A*算法动画效果
Apr 16 Javascript
Angular 4依赖注入学习教程之FactoryProvider配置依赖对象(五)
Jun 04 Javascript
基于LayUI分页和LayUI laypage分页的使用示例
Aug 02 Javascript
浅析vue.js数组的变异方法
Jun 30 Javascript
JavaScript常用数组操作方法,包含ES6方法
May 10 Javascript
基于Koa2写个脚手架模拟接口服务的方法
Nov 27 Javascript
javascript(基于jQuery)实现鼠标获取选中的文字示例【测试可用】
Oct 26 jQuery
JavaScript对象原型链原理详解
Feb 05 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文章内容分页并生成相应的htm静态页面代码
2010/06/07 PHP
php小经验:解析preg_match与preg_match_all 函数
2013/06/29 PHP
php的sprintf函数的用法 控制浮点数格式
2014/02/14 PHP
PHP生成随机密码方法汇总
2015/08/27 PHP
php多线程实现方法及用法实例详解
2015/10/26 PHP
Javascript遍历table中的元素示例代码
2014/07/08 Javascript
jquery.validate使用时遇到的问题
2015/05/25 Javascript
模拟javascript中的sort排序(简单实例)
2016/08/17 Javascript
bootstrap table使用入门基本用法
2017/05/24 Javascript
React如何避免重渲染
2018/04/10 Javascript
Vue项目中使用Vux的安装过程
2018/05/01 Javascript
vue中子组件的methods中获取到props中的值方法
2018/08/27 Javascript
mpvue将vue项目转换为小程序
2018/09/30 Javascript
[03:23]我的刀塔你不可能这么可爱 第一期金萌萌的故事
2014/06/20 DOTA
python 根据正则表达式提取指定的内容实例详解
2016/12/04 Python
Python程序员面试题 你必须提前准备!(答案及解析)
2018/01/23 Python
使用CodeMirror实现Python3在线编辑器的示例代码
2019/01/14 Python
Pytorch 实现自定义参数层的例子
2019/08/17 Python
Python日志器使用方法及原理解析
2020/09/27 Python
详解Selenium-webdriver绕开反爬虫机制的4种方法
2020/10/28 Python
H5新属性audio音频和video视频的控制详解(推荐)
2016/12/09 HTML / CSS
data:image data url 文件转为Blob上传后端的方法
2019/07/16 HTML / CSS
轻金属冶金专业毕业生自荐信
2013/11/02 职场文书
总经理工作职责范文
2014/03/14 职场文书
元宵节晚会主持人串词
2014/03/25 职场文书
环保公益策划方案
2014/08/15 职场文书
2014年精神文明建设工作总结
2014/11/19 职场文书
单位婚育证明范本
2014/11/21 职场文书
2014年设备管理工作总结
2014/11/26 职场文书
2014司机年终工作总结
2014/12/05 职场文书
党支部先进事迹材料
2014/12/24 职场文书
2015年预防青少年违法犯罪工作总结
2015/05/22 职场文书
消防演习感想
2015/08/10 职场文书
标准演讲稿格式结尾应该怎么书写?
2019/07/17 职场文书
MySql 8.0及对应驱动包匹配的注意点说明
2021/06/23 MySQL
java调用Restful接口的三种方法
2021/08/23 Java/Android