Marklogic 从JSON中删除空属性

Marklogic 从JSON中删除空属性,marklogic,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[p

我想删除每个空的(例如“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={“信封”:{“标题”:[],“三元组”:[],“实例”:{“A”:“22”,“B”:“}};
函数cleanProp(doc){
对于(文档中的变量propName){
for(单据[propName]中的变量d){
如果(!isEmpty(doc[propName][d])| | doc[propName][d].length!=0){
对于(单据[propName][d]中的var f){
if(doc[propName][d][f]==null | | | | doc[propName][d][f]==undefined | | | | doc[propName][d][f]==null){
删除文件[propName][d][f];
}
}
}
}
}
}
清洁道具(doc);
控制台日志(doc);
函数isEmpty(obj){
for(obj中的var键){
if(对象hasOwnProperty(键))
返回false;
}
返回true;

}
我试过了,效果很好。出了什么问题?doc的值是什么?URI是实际文档的URI,类似于/testdata/aaa.json,它由通用信封模式头组成。它将与以下内容相同:let doc={“a”:“b”:“1”};?实际上就像这样,{“信封”:{“头”:[],“三元组”:[],“实例”:{“A”:“22”,“B”:“}};我想从这个JSON中清除整个B属性。哦,这就是为什么。我得到了它