从 JSON 中删除空属性

Remove empty properties from JSON

我想删除每个空的(例如 "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);

试试这个。希望对你有帮助

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

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;
}