[{"productid":"1","sortindex":"2"},{"productid":"2","sortindex":"3"}]
在JSON中,有兩種結構:對象和數組。
1.對象
一個對象以“{”開始,“}”結束。每個“key”后跟一“:”,“‘key/value’ 對”之間運用 “,”分隔。
packJson = {"name":"nikita", "password":"1111"}
2.數組
packJson = [{"name":"nikita", "password":"1111"}, {"name":"tony", "password":"2222"}];
數組是值的有序集合。一個數組以“[”開始,“]”結束。值之間運用 “,”分隔。
JSON字符串:
var str1 = '{ "name": "cxh", "sex": "man" }';
JSON對象:
var str2 = { "name": "cxh", "sex": "man" };
//由JSON字符串轉換為JSON對象
var obj = eval('(' + str + ')');
或者
var obj = str.parseJSON(); //由JSON字符串轉換為JSON對象
或者
var obj = JSON.parse(str); //由JSON字符串轉換為JSON對象
然后,就可以這樣讀取:
Alert(obj.name);
Alert(obj.sex);
//可以運用toJSONString()或者全局要領JSON.stringify()將JSON對象轉化為JSON字符串。
例如: www.2cto.com
var last=obj.toJSONString(); //將JSON對象轉化為JSON字符
或者
var last=JSON.stringify(obj); //將JSON對象轉化為JSON字符
alert(last);
遍歷JSON數組
packJson = [
{"name":"nikita", "password":"1111"},
{"name":"tony", "password":"2222"}
];
for(var i = 0; i < packJson.length; i++){
alert(packJson[i].name + " " + packJson[i].password);
}
//targetJson 目標JSON,packJson 被組裝JSON
function addGroupJson(targetJson, packJson){
if(targetJson && packJson){
for(var p in packJson){
targetJson[p] = packJson[p];
}
}
}
var json1 = {"name":"nikita"};
var json2 = {"password":"1111"};
addGroupJson(json1, json2);
alert(json2str(json1)); //{"name":"nikita","password":"1111"}
1、數組的創建 var arrayObj = new Array(); //創建一個數組
var arrayObj = new Array([size]); //創建一個數組並指定長度,注意不是上限,是長度
var arrayObj = new Array([element0[, element1[, ...[, elementN]]]]); 創建一個數組並賦值 要說明的是,雖然第二種方法創建數組指定了長度,但實際上所有情況下數組都是變長的,也就是說即使指定了長度為5,仍然可以將元素存儲在規定長度以外的,注意:這時長度會隨之改變。 2、數組的元素的訪問 var testGetArrValue=arrayObj[1]; //獲取數組的元素值
arrayObj[1]= "這是新值"; //給數組元素賦予新的值
3、數組元素的添加 arrayObj. push([item1 [item2 [. . . [itemN ]]]]);// 將一個或多個新元素添加到數組結尾,並返回數組新長度
arrayObj.unshift([item1 [item2 [. . . [itemN ]]]]);// 將一個或多個新元素添加到數組開始,數組中的元素自動后移,返回數組新長度
arrayObj.splice(insertPos,0,[item1[, item2[, . . . [,itemN]]]]);//將一個或多個新元素插入到數組的指定位置,插入位置的元素自動后移,返回""。
4、數組元素的刪除 arrayObj.pop(); //移除最后一個元素並返回該元素值
arrayObj.shift(); //移除最前一個元素並返回該元素值,數組中元素自動前移
arrayObj.splice(deletePos,deleteCount); //刪除從指定位置deletePos開始的指定數量deleteCount的元素,數組形式返回所移除的元素
5、數組的截取和合並 arrayObj.slice(start, [end]); //以數組的形式返回數組的一部分,注意不包括 end 對應的元素,如果省略 end 將復制 start 之后的所有元素
arrayObj.concat([item1[, item2[, . . . [,itemN]]]]); //將多個數組(也可以是字符串,或者是數組和字符串的混合)連接為一個數組,返回連接好的新的數組
6、數組的拷貝 arrayObj.slice(0); //返回數組的拷貝數組,注意是一個新的數組,不是指向
arrayObj.concat(); //返回數組的拷貝數組,注意是一個新的數組,不是指向
7、數組元素的排序 arrayObj.reverse(); //反轉元素(最前的排到最后、最后的排到最前),返回數組地址
arrayObj.sort(); //對數組元素排序,返回數組地址
8、數組元素的字符串化 arrayObj.join(separator); //返回字符串,這個字符串將數組的每一個元素值連接在一起,中間用 separator 隔開。
toLocaleString 、toString 、valueOf:可以看作是join的特殊用法,不常用
var lang = ["php","java","javascript"]; //刪除
var removed = lang.splice(1,1); alert(lang); //php,javascript
alert(removed); //java ,返回刪除的項 //插入
var insert = lang.splice(0,0,"asp"); //從第0個位置開始插入
alert(insert); //返回空數組
alert(lang); //asp,php,javascript //替換
var replace = lang.splice(1,1,"c#","ruby"); //刪除一項,插入兩項
alert(lang); //asp,c#,ruby
alert(replace); //php,返回刪除的項
參照博客:http://blog.csdn.net/goflyfreely/article/details/7713954
JSON對象和字符串之間的相互轉換
比如我有兩個變量,我要將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
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對象
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轉為字符串。
參考:http://www.css88.com/archives/3919
Push()尾部添加 pop()尾部刪除
Unshift()頭部添加 shift()頭部刪除
帶轉義符的json解釋
1.json數組:jsonData。取json數組中message的appid的值。例子:
var jsonData = { "code":"200", "message":"{\"appid\":\"test123\",\"data\":\"PhcDgwpfphWQMzgxmum5DwMKep2QAOqCjyyf7ltwnV/091FNi2/ERnTV92r9A154Ruo+fAK7foNaZCBXSw1IRbQ6StG/X4G+OvvOLavDiA1pRD+4hId6jDO11xTnegAllvZcAsn7jpp8ye8ewtzPpM5RJvhEzoVA\",\"signkey\":\"932ffd030344f11af5fe5a626b0e6d99\",\"url\":\"http://www.baidu?id=332503\"}" }; var json_str = JSON.stringify(jsonData); var json_str2 = JSON.parse(json_str); var msg2 = json_str2.message; var msg3 = JSON.parse(msg2); var msg4 = msg3.appid; console.log(msg4);