解析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 相关文章推荐
地震发生中逃生十大法则
May 12 Javascript
jquery判断元素的子元素是否存在的示例代码
Feb 04 Javascript
jQuery中DOM树操作之复制元素的方法
Jan 23 Javascript
老生常谈jacascript DOM节点获取
Apr 17 Javascript
Express之get,pos请求参数的获取
May 02 Javascript
React学习之事件绑定的几种方法对比
Sep 24 Javascript
Vue项目中设置背景图片方法
Feb 21 Javascript
微信小程序自定义对话框弹出和隐藏动画
Jul 19 Javascript
vue异步axios获取的数据渲染到页面的方法
Aug 09 Javascript
小程序显示弹窗时禁止下层的内容滚动实现方法
Mar 20 Javascript
基于canvas实现手写签名(vue)
May 21 Javascript
vue离开当前页面触发的函数代码
Sep 01 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 is_dir() 判断给定文件名是否是一个目录
2010/05/10 PHP
360通用php防护代码(使用操作详解)
2013/06/18 PHP
PHP实现的随机红包算法示例
2017/08/14 PHP
有趣的javascript数组定义方法
2010/09/10 Javascript
JS跨域代码片段
2012/08/30 Javascript
使用js画图之画切线
2015/01/12 Javascript
js实现类似jquery里animate动画效果的方法
2015/04/10 Javascript
Bootstrap菜单按钮及导航实例解析
2016/09/09 Javascript
Ztree新增角色和编辑角色回显问题的解决
2016/10/25 Javascript
BootStrap Fileinput初始化时的一些参数
2016/12/30 Javascript
js 输入框 正则表达式(菜鸟必看教程)
2017/02/19 Javascript
关于axios返回空对象的问题解决
2017/04/04 Javascript
node文件上传功能简易实现代码
2017/06/16 Javascript
JSON的parse()方法介绍
2019/01/31 Javascript
JS严格模式原理与用法实例分析
2020/04/27 Javascript
在Python中用has_key()方法查找键是否存在的教程
2015/05/21 Python
python验证码识别的实例详解
2016/09/09 Python
python实现将excel文件转化成CSV格式
2018/03/22 Python
[原创]windows下Anaconda的安装与配置正解(Anaconda入门教程)
2018/04/05 Python
django ajax json的实例代码
2018/05/29 Python
Python3.7基于hashlib和Crypto实现加签验签功能(实例代码)
2019/12/04 Python
python 实现全球IP归属地查询工具
2020/12/18 Python
海信商城:海信电视、科龙空调、容声冰箱官方专卖
2017/02/07 全球购物
拾金不昧表扬信范文
2014/01/11 职场文书
表彰大会主持词
2014/03/26 职场文书
安全保证书范文
2014/04/29 职场文书
志愿者爱心公益活动策划方案
2014/09/15 职场文书
公司离职证明范本(5篇)
2014/09/17 职场文书
致地震灾区的慰问信
2015/03/23 职场文书
仓库管理制度范本
2015/08/04 职场文书
创业者如何撰写出一份打动投资人的商业计划书?
2019/07/02 职场文书
标会主持词应该怎么写?
2019/08/15 职场文书
MYSQL主从数据库同步备份配置的方法
2021/05/26 MySQL
MySQL系列之九 mysql查询缓存及索引
2021/07/02 MySQL
Python办公自动化解决world文件批量转换
2021/09/15 Python
Python各协议下socket黏包问题原理
2022/04/12 Python