JSON字符串操作移除空串更改key/value的介紹
對(duì)于JSON字符串的操作。移除鍵值、添加屬性。
//刪除JSON對(duì)象value值 var json=[.....]; delete(json['key']); 或者 delete(json.key); //添加對(duì)象object json.object=value; 或者 json['object']=value;
如果數(shù)據(jù)是查詢數(shù)據(jù)庫(kù)得到的,那么可能會(huì)存在空值,for循環(huán)JSON數(shù)據(jù)挨個(gè)移除空值或者操作數(shù)據(jù)比較繁瑣。
這時(shí)候可以使用for…in來(lái)循環(huán)屬性 去除空值或者操作數(shù)據(jù)。
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; }
操作組織架構(gòu)JSON數(shù)據(jù),移除空鍵值,子集內(nèi)容合并到新鍵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; }
需要的就試試吧。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
相關(guān)文章
javascript的alert box在java中如何顯示多行
這篇文章主要介紹了javascript的alert box在java中如何顯示多行,需要的朋友可以參考下2014-05-05JavaScript實(shí)現(xiàn)經(jīng)典排序算法之選擇排序
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)經(jīng)典排序算法之選擇排序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-12-12Bootstrap框架動(dòng)態(tài)生成Web頁(yè)面文章內(nèi)目錄的方法
這篇文章主要介紹了Bootstrap框架動(dòng)態(tài)生成Web頁(yè)面文章內(nèi)目錄的方法,利用Bootstrap中的Affix和ScrollSpy插件便可以實(shí)現(xiàn),需要的朋友可以參考下2016-05-05關(guān)于ECharts設(shè)置x軸刻度間隔的兩種方式
這篇文章主要介紹了關(guān)于ECharts設(shè)置x軸刻度間隔的兩種方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02深入理解requestAnimationFrame的動(dòng)畫循環(huán)
這篇文章先給大家介紹了什么是requestAnimationFrame,而后才深入講述關(guān)于requestAnimationFrame的動(dòng)畫循環(huán),文章介紹的非常詳細(xì),相信對(duì)大家學(xué)習(xí)requestAnimationFrame具有一定的參考借鑒價(jià)值,有需要的朋友下面來(lái)一起看看吧。2016-09-09JavaScript實(shí)現(xiàn)格式化字符串函數(shù)String.format
本文主要介紹了JavaScript實(shí)現(xiàn)格式化字符串函數(shù)String.format(可自動(dòng)解析引號(hào)轉(zhuǎn)義字符)。具有很好的參考價(jià)值,需要的朋友一起來(lái)看下吧2016-12-12