J'ai le code JSON valide suivant. Il décrit une structure arborescente:JSON imbriqué find item
{
"items": [
{
"id": "d1"
},
{
"id": "2",
"children": [
{
"id": "3"
},
{
"id": "4"
},
{
"id": "5",
"children": [
{
"id": "6"
},
{
"id": "7",
"children": [
{
"id": "8"
},
{
"id": "9"
}
]
},
{
"id": "10"
}
]
},
{
"id": "11"
},
{
"id": "12"
}
]
},
{
"id": "13"
},
{
"id": "14"
}
]
}
Je dois être en mesure d'obtenir l'un des « éléments » par identifiant et l'un des éléments de l'enfant. Par exemple. Dans un premier temps j'ai essayé grep:
var returnedData = $.grep(obj.items, function(element, index){return element.id == "2";
});
Cela fonctionnait très bien pour le point avec id == 2 mais échoue complètement lorsque je tente d'obtenir element.id == « 7 »
Toute aide serait appréciée. Merci d'avance.
Merci à la surface ce semble bon. Besoin de tester dans le contexte de mon script, mais j'apprécie vraiment votre réponse rapide. – user831839
@GolezTrol C'est vraiment étrange. Fonctionne bien pour moi: http://jsfiddle.net/rj26H/4/ –
@ArtemPetrosian Accidentellement, mais si le point 6 aurait des enfants, alors vous verrez que votre proposition brise le code: http://jsfiddle.net/ rj26H/6/Il est important de laisser la boucle for continuer (donc n'appelez pas return) si l'appel récursif ne renvoie pas un élément. – GolezTrol