對于JSON字符串的操作。移除鍵值、添加屬性。
//刪除JSON對象value值 var json=[.....]; delete(json['key']); 或者 delete(json.key); //添加對象object json.object=value; 或者 json['object']=value;
如果數據是查詢數據庫得到的,那么可能會存在空值,for循環JSON數據挨個移除空值或者操作數據比較繁瑣。
這時候可以使用for…in來循環屬性 去除空值或者操作數據。
function removeEmptyObject(object){ for (var i in object) { var value = object[i]; if (typeof value === 'object') { if (Array.isArray(value)) { if (value.length == 0) { delete object[i]; continue; } } removeEmptyObject(value); //按需添加 if (isEmpty(value)) { delete object[i]; } } else { if (value === '' || value === null || value === undefined) { delete object[i]; } else { } } } return object; } //是否為空 function isEmpty(object) { for (var name in object) { return false; } return true; }
操作組織架構JSON數據,移除空鍵值,子集內容合并到新鍵children下。
function removeEmptyObject(object){ for (var i in object) { var value = object[i]; if (typeof value === 'object') { if (Array.isArray(value)) { if (value.length == 0) { //alert(object[i]); delete object[i]; continue; }else{ var a=[]; if(i=='jobChildren'){ for (var j = 0; j < object[i].length; j++) { a.push(object[i][j]); } delete object[i]; }else if(i=='userChildren'){ for (var j = 0; j < object[i].length; j++) { a.push(object[i][j]); } delete object[i]; }else if(i=='deptChildren'){ for (var j = 0; j < object[i].length; j++) { a.push(object[i][j]); } delete object[i]; }else if(i=='companyChildren'){ for (var j = 0; j < object[i].length; j++) { a.push(object[i][j]); } delete object[i]; }else if(i=='jobDeptChildren'){ for (var j = 0; j < object[i].length; j++) { a.push(object[i][j]); } delete object[i]; } if(a.length>0&&object["children"]!=undefined){ for (var k = 0; k < object["children"].length; k++) { a.push(object["children"][k]); } object["children"]=a; }else if(a.length>0 && object["children"]==undefined){ object["children"]=a; } } } removeEmptyObject(value); if (isEmpty(value)) { delete object[i]; } } else { if (value === '' || value === null || value === undefined) { delete object[i]; } else { } } } } function isEmpty(object) { for (var name in object) { return false; } return true; }
需要的就試試吧。
總結
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com