一、概念簡介
- var packJson = {"name":"Liza", "password":"123"};
2.數組
- var packJson = [{"name":"Liza", "password":"123"}, {"name":"Mike", "password":"456"}];
二、JSON對象和JSON字符串的轉換
JSON字符串:
- var jsonStr ='{"name":"Liza", "password":"123"}' ;
JSON對象:
- var jsonObj = {"name":"Liza", "password":"123"};
- var jsonObject= jQuery.parseJSON(jsonstr);
- var jsonstr =JSON.stringify(jsonObject );
三、JSON的輸出美化
- JSON.stringify(value[, replacer [, space]])
- var formatJsonStr=JSON.stringify(jsonObject,undefined, 2);
五、遍歷JSON對象和JSON數組
- var packJson = {"name":"Liza", "password":"123"} ;
- for(var k in packJson ){//遍歷packJson 對象的每個key/value對,k爲key
- alert(k + " " + packJson[k]);
- }
- var packJson = [{"name":"Liza", "password":"123"}, {"name":"Mike", "password":"456"}];
- for(var i in packJson){//遍歷packJson 數組時,i爲索引
- alert(packJson[i].name + " " + packJson[i].password);
- }
六、遞歸遍歷
- /**
- *返回處理後的 json字符串
- */
- function jsonParse(jsonObj) {
- distinctJson(jsonObj);
- var last=JSON.stringify(jsonObj, undefined, 2);
- return last;
- }
- /**
- * 去掉 json中數組多餘的項
- */
- function distinctJson(obj) {
- if(obj instanceof Array) {
- if(obj.length > 1) { //數組中有超過一個對象,刪除第一個對象之後的所有對象
- obj.splice(1, (obj.length - 1));
- }
- distinctJson(obj[0]);
- } else if(obj instanceof Object) {
- for( var index in obj){
- var jsonValue = obj[index];
- distinctJson(jsonValue);
- }
- }
- }
- /**
- * 遞歸查找目標節點
- */
- function findTarget(obj,targetId,targetChildren){
- if(obj.id==targetId){
- obj.children=targetChildren;
- return true;
- }else{
- if(obj.children!=null){
- for(var i=0; i<obj.children.length; i++){
- var flag=findTarget(obj.children[i],targetId,targetChildren);
- if(flag==true){
- return true;
- }
- }
- }
- }
- return false;
- }