繁体   English   中英

javascript / json如何从动态生成的嵌套json数组中删除一个对象

[英]javascript/json how to remove an object from nested json array which got generated dynamically

我面临一个小问题,从嵌套的json数组中删除一个动态生成的对象。 下面是json ..

实际上我的要求是,我有一个JSON树,用户可以添加或删除多个节点..

[{
"mainTxt": "test",
"subTxt": "SubTxt1",
"nodes": [{
    "mainTxt": "test",
    "subTxt": "SubTxt2",
    "nodes": [{
        "mainTxt": "test",
        "subTxt": "test Operations",
        "nodes": [{
            "mainTxt": "test",
            "subTxt": "test Operations",
            "nodes": [{
                "mainTxt": "test",
                "subTxt": "test Operations"
            }]
        }]
    }]
}, {
    "mainTxt": "test",
    "subTxt": "SubTxt3",
    "nodes": [{
        "mainTxt": "test",
        "subTxt": "test Operations",
        "nodes": [{
            "mainTxt": "test",
            "subTxt": "test Operations"
        }]
    }]
}, {
    "mainTxt": "test",
    "subTxt": "india"
}, {
    "mainTxt": "test",
    "subTxt": "SubTxt4"
}, {
    "mainTxt": "test",
    "subTxt": "SubTxt5"
}]

}]

这里可以动态添加或删除以下代码块

    "nodes": [{
                "mainTxt": "test",
                "subTxt": "test Operations"
            }]
and
{
        "mainTxt": "test",
        "subTxt": "SubTxt5"
    }

我如何删除动态添加的上面的块,再次删除后我需要形成相同的JSON数组。

我通过在数组中查找特定对象的索引并尝试使用splice()和delete()方法删除来尝试编写循环的多种方法。 但它没有正常工作。

其实我不想根据值删除对象,我想根据索引删除(如果我们添加或删除它可能会改变)。 大多数解决方案都是根据价值提供的。 如果有任何简单的解决方法,有人可以帮助我吗?

先感谢您..

您可以使用(删除deeperattribute )删除JSON属性:

delete myjson.attribute.deeperattribute

您可以通过分配它们来添加JSON属性:

myjson.thirteen = 12;

我不确定我是否理解你的问题,但我希望这会在你的路上帮助你。

修复了以下代码的问题..

 removeTile:function(oEvt){
        this._deleteRecord(globalArray, selObject);
        _oModel.setData(oModelData);
},
    _deleteRecord:function(items, record){
if(items !== undefined){
for(var i=0;i< items.length;i++){
if(items[i]=== record){
                    items.splice(i,1);break;
}else{

                    this._deleteRecord(items[i].nodes, record);
}
}
}
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM