比如我有两个变量,我要将a转换成字符串,将b转换成JSON对象:
[code="javascript"]
var a={"name":"tom","sex":"男","age":"24"};
var b='{"name":"Mike","sex":"女","age":"29"}';
[/code]
在Firefox,chrome,opera,safari,ie9,ie8等高级浏览器直接可以用JSON对象的stringify()和parse()方法。
JSON.stringify(obj)将JSON转为字符串。JSON.parse(string)将字符串转为JSON格式;
上面的转换可以这么写:
[code="javascript"]
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
[/code]
JSON.stringify()
ie8(兼容模式),ie7和ie6没有JSON对象,不过http://www.json.org/提供了一个json.js,这样ie8(兼容模式),ie7和ie6就可以支持JSON对象以及其stringify()和parse()方法;你可以在https://github.com/douglascrockford/JSON-js上获取到这个js,一般现在用json2.js。
ie8(兼容模式),ie7和ie6可以使用eval()将字符串转为JSON对象,
[code="javascript"]
var c='{"name":"Mike","sex":"女","age":"29"}';
var cToObj=eval("("+c+")");
alert(typeof(cToObj));
[/code]
jQuery中也有将字符串转为JSON格式的方法jQuery.parseJSON( json ),接受一个标准格式的 JSON 字符串,并返回解析后的 JavaScript (JSON)对象。当然如果有兴趣可以自己封装一个jQuery扩展,jQuery.stringifyJSON(obj)将JSON转为字符串。
query转换json对象为字符串 JSON.stringify(jsonObject)
alert(JSON.stringify(jsonObject));
话说上面这个函数在IE6、7中都无法正常使用。解决办法呢?
如下,用jquery的方法:
01 |
// JSON转换为字符串 |
02 |
function JSONstringify(Json){ |
03 |
if ($.browser.msie){ |
04 |
if ($.browser.version== "7.0" ||$.browser.version== "6.0" ){ |
05 |
var result=jQuery.parseJSON(Json); |
06 |
} else { |
07 |
var result=JSON.stringify(Json); |
08 |
} |
09 |
} else { |
10 |
var result=JSON.stringify(Json); |
11 |
} |
12 |
return result; |
13 |
|
// JSON转换为字符串
function JSONstringify(Json){
if($.browser.msie){
if($.browser.version=="7.0"||$.browser.version=="6.0"){
var result=jQuery.parseJSON(Json);
}else{
var result=JSON.stringify(Json);
}
}else{
var result=JSON.stringify(Json);
}
return result;
}
话说jquery的jQuery.parseJSON在IE8、9中貌似不怎么好使,所以直接用其自己支持的方法JSON.stringify