解析JSON对象与字符串之间的相互转换
在开发的过程中,如果对于少量参数的前后台传递,可以直接采用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) {
$("#pshow").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对象,不过https://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转为字符串。
推荐阅读
-
Python中实现字符串类型与字典类型相互转换的方法
-
C#实现char字符数组与字符串相互转换的方法
-
将json字符串转换为对象的方法
-
python3 json数据格式的转换(dumps/loads的使用、dict to str/str to dict、json字符串/字典的相互转换)
-
详细整理python 字符串(str)与列表(list)以及数组(array)之间的转换方法
-
python3 json数据格式的转换(dumps/loads的使用、dict to str/str to dict、json字符串/字典的相互转换)
-
js数组与字符串的相互转换的情况
-
java对象与json对象间的相互转换
-
JSON语法以及json与JavaScript对象的转换实例讲解
-
Python 字符串与二进制串的相互转换示例