本篇文章主要是對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: data: { userInfo: jsonUserInfo, flag: "123456", key: " 654321" },
dataType: "text unction(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(
http://www.json.org/js.html提供了一個json.js,這樣ie8(相容模式),ie7和ie6就可以支援JSON對像以及其stringify()和parse()方法;你可以在http://www.php.cn/上取得到這個js,一般現在用json2.js。
ie8(相容模式),ie7和ie6可以使用eval()將字串轉為JSON對象,var c='{"name":"Mike","sex":"女","age" :"29"}';var cToObj=eval("("+c+")");
alert(typeof(cToObj));