比如我有兩個變量,我要將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