70 votes

utiliser la fonction find() de jQuery sur un objet JSON

Similaire à La question de brnwdrng Je cherche un moyen d'effectuer une recherche dans un objet de type JSON.
en supposant que la structure de mon objet soit comme ça :

TestObj = {
    "Categories": [{
        "Products": [{
            "id": "a01",
            "name": "Pine",
            "description": "Short description of pine."
        },
        {
            "id": "a02",
            "name": "Birch",
            "description": "Short description of birch."
        },
        {
            "id": "a03",
            "name": "Poplar",
            "description": "Short description of poplar."
        }],
        "id": "A",
        "title": "Cheap",
        "description": "Short description of category A."
    },
    {
        "Product": [{
            "id": "b01",
            "name": "Maple",
            "description": "Short description of maple."
        },
        {
            "id": "b02",
            "name": "Oak",
            "description": "Short description of oak."
        },
        {
            "id": "b03",
            "name": "Bamboo",
            "description": "Short description of bamboo."
        }],
        "id": "B",
        "title": "Moderate",
        "description": "Short description of category B."
    }]
};

Je voudrais obtenir un objet avec id="A".

J'ai essayé toutes sortes de choses comme :

$(TestObj.find(":id='A'"))

mais rien ne semble fonctionner.

Quelqu'un peut-il trouver un moyen de récupérer un élément en fonction de certains critères sans utiliser "each" ?

-3voto

davenpcj Points 3424

Une autre option que je voulais mentionner, vous pourriez convertir vos données en XML et utiliser ensuite jQuery.find(":id='A'") comme vous le vouliez.

Il existe des plugins jQuery à cet effet, tels que json2xml .

Les frais de conversion ne valent probablement pas la peine, mais il s'agit d'un coût unique pour les données statiques, ce qui pourrait être utile.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X