JSON对象转换成字符串 相互转换 的几种方式
来源:互联网 发布:淘宝商城孕妇装秋装 编辑:程序博客网 时间:2024/06/09 07:11
在最近的工作中,使用到JSON进行数据的传递,特别是从前端传递到后台,前台可以直接采用ajax的data函数,按json格式传递,后台Request即可,但有的时候,需要传递多个参数,后台使用request进行接收。有时传递了几个数值,还好接收。但是如果传递一个json数组,这样后台接受的时候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: "JSON", success: function(data) { $("#divShow").html(data); } });
这是简单的传递,如果传递多个数组,前台传递多个类格式的JSON数组,也就是集合类型。后台处理就比较麻烦,例如:
[{“name”:”a”},{“name”,”b”},{“name”,”c”}],则无法传递,此时必须使用JSON.stringify将数组对象转换成字符串,再进行AJAX传递即可。
例如:两个参数变量,一个是字符串,一个是数组。
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格式;
在转换成一般使用了两种方式,一个是JSON.stringify(obj),转换成字符串,JSON.parse(string)将字符串转为JSON格式,不过一个一个json.js的支持。不过在许多的浏览器现在都支持,可以直接使用。
上面的转换可以这么写:
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转为字符串。
这只是一种方法,还有几种方法,大家可以看一下:
1>jQuery插件支持的转换方式:
$.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象
2>浏览器支持的转换方式(Firefox,chrome,opera,safari,ie9,ie8)等浏览器:
JSON.parse(jsonstr); //可以将json字符串转换成json对象
JSON.stringify(jsonobj); //可以将json对象转换成json对符串
注:ie8(兼容模式),ie7和ie6没有JSON对象,推荐采用JSON官方的方式,引入json.js。
3>javascript支持的转换方式:
eval(‘(’ + jsonstr + ‘)’); //可以将json字符串转换成json对象,注意需要在json字符外包裹一对小括号
注:ie8(兼容模式),ie7和ie6也可以使用eval()将字符串转为JSON对象,但不推荐这些方式,这种方式不安全eval会执行json串中的表达式。
4>JSON官方的转换方式:
http://www.json.org/提供了一个json.js,这样ie8(兼容模式),ie7和ie6就可以支持JSON对象以及其stringify()和parse()方法;
可以在https://github.com/douglascrockford/JSON-js上获取到这个js,一般现在用json2.js。
- 前台 JSON对象转换成字符串 相互转换 的几种方式
- 前台 JSON对象转换成字符串 相互转换 的几种方式
- 前台 JSON对象转换成字符串 相互转换 的几种方式
- JSON对象转换成字符串 相互转换 的几种方式
- Json字符串与Object对象相互转换的几种方式
- json对象和字符串的相互转换
- json对象与字符串...的相互转换
- json对象和字符串的相互转换
- C# 对象与JSON字符串互相转换的几种方式
- JSON对象与JSON字符串相互转换
- JSON对象与JSON字符串相互转换
- json字符串与json对象相互转换
- json字符串与json对象相互转换
- JSON对象与JSON字符串相互转换
- JSON对象与JSON字符串相互转换
- json字符串与json对象相互转换
- json格式字符串与json对象相互转换的函数
- Json字符串与Json对象的相互转换
- linux下mail使用故障mail: command not found
- RocketMQ存储篇——Consumequeue
- Redis教程之一Linux安装Redis
- 组合式控件(购物车数量的加减)
- 用于准确测量运行时间
- JSON对象转换成字符串 相互转换 的几种方式
- 利用机器学习方法确定各个特征的权重
- visjs使用小记-3.简单网络拓扑图的折叠与展开
- centos设置自动开关机
- css基础样式(9)-定位、浮动
- 拓展欧几里得模板
- 【poj 3061】Subsequence
- [HDU
- 关于自定义父控件实现右滑动最后,继续滑动,加载刷新更多的另一种实现方案