解析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 当前日期加(天、周、月、年)
Aug 09 Javascript
ExtJS 2.0 GridPanel基本表格简明教程
May 25 Javascript
兼容IE和Firefox的javascript获取iframe文档内容的函数
Aug 15 Javascript
解决3.01版的jquery.form.js中文乱码问题的解决方法
Mar 08 Javascript
mailto的使用技巧分享
Dec 21 Javascript
阻止事件(取消浏览器对事件的默认行为并阻止其传播)
Nov 03 Javascript
js弹窗返回值详解(window.open方式)
Jan 11 Javascript
extjs 时间范围选择自动判断的实现代码
Jun 24 Javascript
Javascript基础回顾之(二) js作用域
Jan 31 Javascript
vue-cli构建项目使用 less的方法
Oct 04 Javascript
vue+iview实现文件上传
Nov 17 Vue.js
js实现弹框效果
Mar 24 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
深入解析phpCB批量转换的代码示例
2013/06/27 PHP
php获取从百度搜索进入网站的关键词的详细代码
2014/01/08 PHP
php 获取页面中指定内容的实现类
2014/01/23 PHP
php上传功能集后缀名判断和随机命名(强力推荐)
2015/09/10 PHP
Javascript延迟执行实现方法(setTimeout)
2010/12/30 Javascript
javascript 禁用IE工具栏,导航栏等等实现代码
2013/04/01 Javascript
JS实现网页上随滚动条滚动的层效果代码
2015/11/04 Javascript
js+canvas绘制矩形的方法
2016/01/28 Javascript
jQuery+C#实现参数RSA加密传输功能【附jsencrypt.js下载】
2017/06/26 jQuery
vue弹窗组件使用方法
2018/04/28 Javascript
小程序scroll-view组件实现滚动的示例代码
2018/09/20 Javascript
详解微信小程序网络请求接口封装实例
2019/05/02 Javascript
json 带斜杠时如何解析的实现
2019/08/12 Javascript
bootstrap+spring boot实现面包屑导航功能(前端代码)
2019/10/09 Javascript
vue-cli设置css不生效的解决方法
2020/02/07 Javascript
如何优雅地取消 JavaScript 异步任务
2020/03/22 Javascript
[36:20]完美世界DOTA2联赛PWL S3 access vs Rebirth 第一场 12.17
2020/12/18 DOTA
CentOS 7 安装python3.7.1的方法及注意事项
2018/11/01 Python
对PyQt5基本窗口控件 QMainWindow的使用详解
2019/06/19 Python
python函数与方法的区别总结
2019/06/23 Python
python反转列表的三种方式解析
2019/11/08 Python
python thrift 实现 单端口多服务的过程
2020/06/08 Python
python实现不同数据库间数据同步功能
2021/02/25 Python
原装进口全世界:天猫国际
2016/08/03 全球购物
质量月活动策划方案
2014/03/10 职场文书
情人节寄语大全
2014/04/11 职场文书
公司领导班子对照材料
2014/08/18 职场文书
经贸日语专业自荐信
2014/09/02 职场文书
争当四好少年演讲稿
2014/09/13 职场文书
幼儿园学前班幼儿评语
2014/12/29 职场文书
公司捐书倡议书
2015/04/27 职场文书
2015年手术室工作总结
2015/05/11 职场文书
导游词之丹东鸭绿江
2019/10/24 职场文书
CSS中妙用 drop-shadow 实现线条光影效果
2021/11/11 HTML / CSS
HTML+JS实现在线朗读器
2022/02/15 Javascript
Android Gradle 插件自定义Plugin实现注意事项
2022/06/16 Java/Android