从JSON删除空属性

时间:2019-03-11 08:35:18

标签: marklogic

我想删除所有空白(例如“ a” =“”)JSON属性 来自信封内的实例部分。 我像下面那样编写了代码,但是没有用。 谁能告诉我如何进行这项工作?

let doc = fn.doc(URI);

function cleanProp(doc) {
  for (var propName in doc) { 
    if (doc[propName] === null || doc[propName] === undefined || doc[propName] === "") {
      delete doc[propName];
    }
  }
}

cleanProp(doc);

1 个答案:

答案 0 :(得分:1)

尝试一下。希望对您有帮助

注意:它仅适用于给定的变量,如果您正在寻找动态循环,则可以递归循环。

let doc =  {"envelope":{"headers":[], "triples":[], "instance":{"A":"22", "B":""} }};

function cleanProp(doc) {
  for (var propName in doc) { 
  	for(var d in doc[propName]){
    		if (!isEmpty(doc[propName][d]) || doc[propName][d].length != 0) {

         for (var f in doc[propName][d]){
         			if (doc[propName][d][f] === null || doc[propName][d][f] === undefined || doc[propName][d][f] === "") {
              delete doc[propName][d][f];
              }
         }
      }
    }
  }
}

cleanProp(doc);

console.log(doc);

function isEmpty(obj) {
    for(var key in obj) {
        if(obj.hasOwnProperty(key))
            return false;
    }
    return true;
}