解析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 live
May 15 Javascript
jQuery chili图片远处放大插件
Nov 30 Javascript
juqery 学习之四 筛选过滤
Nov 30 Javascript
js中的replace方法使用介绍
Oct 28 Javascript
JS实现点击链接取消跳转效果的方法
Jan 24 Javascript
BootStrap iCheck插件全选与获取value值的解决方法
Aug 24 Javascript
原生JS实现网络彩票投注效果
Sep 25 Javascript
如何正确理解javascript的模块化
Mar 02 Javascript
详解angularJs指令的3种绑定策略
Apr 13 Javascript
JS简单添加元素新节点的方法示例
Feb 10 Javascript
JS用最简单的方法实现四舍五入
Aug 27 Javascript
SpringBoot+Vue开发之Login校验规则、实现登录和重置事件
Oct 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
phpmyadmin的#1251问题
2006/11/25 PHP
Array of country list in PHP with Zend Framework
2011/10/17 PHP
thinkPHP5.0框架验证码调用及点击图片刷新简单实现方法
2018/09/07 PHP
Javascript YUI 读码日记之 YAHOO.util.Dom - Part.2 0
2008/03/22 Javascript
修改jQuery.Autocomplete插件 支持中文输入法 避免TAB、ENTER键失效、导致表单提交
2009/10/11 Javascript
页面元素绑定jquery toggle后元素隐藏的解决方法
2014/03/27 Javascript
JQuery动画animate的stop方法使用详解
2014/05/09 Javascript
手写的一个兼容各种浏览器的javascript getStyle函数(获取元素的样式)
2014/06/06 Javascript
jquery幻灯片插件bxslider样式改进实例
2014/10/15 Javascript
不依赖Flash和任何JS库实现文本复制与剪切附源码下载
2015/10/09 Javascript
AngularJS 获取ng-repeat动态生成的ng-model值实例详解
2016/11/29 Javascript
jQuery表单验证之密码确认
2017/05/22 jQuery
JavaScript常见JSON操作实例分析
2018/08/08 Javascript
Vue 幸运大转盘实现思路详解
2019/05/06 Javascript
uniapp实现可滑动选项卡
2020/10/21 Javascript
[01:10]3.19DOTA2发布会 三代刀塔人第一代
2014/03/25 DOTA
Python使用urllib2获取网络资源实例讲解
2013/12/02 Python
Python中的filter()函数的用法
2015/04/27 Python
在Python的Django框架中编写错误提示页面
2015/07/22 Python
flask框架视图函数用法示例
2018/07/19 Python
python实现大转盘抽奖效果
2019/01/22 Python
Python子类继承父类构造函数详解
2019/02/19 Python
Python玩转Excel的读写改实例
2019/02/22 Python
Tensorflow分批量读取数据教程
2020/02/07 Python
解决Keras TensorFlow 混编中 trainable=False设置无效问题
2020/06/28 Python
Python连接Impala实现步骤解析
2020/08/04 Python
python如何操作mysql
2020/08/17 Python
Pytho爬虫中Requests设置请求头Headers的方法
2020/09/22 Python
CSS3转换功能transform主要属性值分析及实现分享
2012/05/06 HTML / CSS
HTML5实时语音通话聊天MP3压缩传输3KB每秒
2019/08/28 HTML / CSS
澳大利亚便宜隐形眼镜购买网站:QUICKLENS Australia
2018/10/06 全球购物
部队党性分析材料
2014/02/16 职场文书
岗位明星事迹材料
2014/05/18 职场文书
建筑施工安全生产责任书
2014/07/22 职场文书
审计局班子四风对照检查材料思想汇报
2014/10/07 职场文书
童年读书笔记
2015/06/26 职场文书