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)文章
關(guān)于火狐(firefox)及ie下event獲取的兩種方法
經(jīng)常有同事問(wèn)我在火狐瀏覽器怎么獲取event的方法,大多是想獲取event.keyCode的功能,接下來(lái)為您介紹兩種實(shí)現(xiàn)方法,需要了解的朋友可以參考下2012-12-12
JavaScript中forEach和map方法的使用與區(qū)別
眾所周知map和forEach是數(shù)組的操作方法,下面這篇文章主要給大家介紹了關(guān)于JavaScript中forEach和map方法的使用與區(qū)別,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02
js實(shí)現(xiàn)視頻播放時(shí)屏幕顯示水印
這篇文章主要為大家詳細(xì)介紹了js如何實(shí)現(xiàn)視頻播放時(shí)屏幕顯示水印的效果,文中的示例代碼講解詳細(xì),對(duì)我們深入掌握js有一定的幫助,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-10-10
JavaScript單線程和任務(wù)隊(duì)列原理解析
這篇文章主要介紹了JavaScript單線程和任務(wù)隊(duì)列原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02
javascript 設(shè)置文本框中焦點(diǎn)的位置
設(shè)置文本框中焦點(diǎn)的位置的實(shí)現(xiàn)代碼2009-11-11
利用JS實(shí)現(xiàn)頁(yè)面刪除并重新排序功能
這篇文章主要介紹了利用JS實(shí)現(xiàn)頁(yè)面刪除并重新排序功能,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-12-12

