在json树中按参数值删除元素

时间:2011-11-14 04:28:42

标签: jquery json tree

我知道有很多类似的问题,但没有一个相同。 我有一个非常复杂的json树:

"items": [
    {
    "slug": "level_1",
    "items": [
        { 
        "slug": "level_1_1"
        },
        {
        "slug": "level_1_2",
        "items": [
             {
             "slug": "level_1_2_1",
             },
             {
             "slug": "level_1_2_2"
             }
        ] 
        }
    ]},
    {
    "slug": "level_2"
    }
 ]

我需要一个函数来删除/删除“slug”值的json元素。可能吗? 我尝试了一切没有成功的事情。我可以使用javascript / jQuery。

1 个答案:

答案 0 :(得分:2)

递归处理树:你想要一个由递归处理的元素组成的列表,对于的每个元素都有一个匹配的'slug'值。递归处理包括创建一个新对象,原始的slug和一个'items'列表通过递归调用函数进行过滤。

类似的东西:

function my_filter(json_array, slug_to_remove) {
    return $.map(json_array, function(element) { 
        return (element.slug == slug_to_remove) ? null : {
            slug: element.slug, items: my_filter(element.items, slug_to_remove)
        };
    });
}