J'ai généré un objet JavaScript (appelez-le 'jItems'
) en utilisant $.getJSON
. Sur la page, j'ai une liste de catégories dans lesquelles les éléments de jItems s'inscrivent. Mon désir est de cliquer sur une catégorie et de déclencher une fonction pour afficher uniquement les éléments de cette catégorie. Serait-il préférable d'utiliser getJson
ou jquery each()
ou find()
pour tirer les bons éléments de jItems
?Quelle est la meilleure façon d'analyser une chaîne JSON?
Répondre
Tout dépend de la façon dont vos données ressemble mais cela pourrait vous aider, je pense:
var jsonCats = [
{"id": "category1", "items": [{"iid":"item1"}, {"iid":"item2"}, {"iid":"item3"}]},
{"id": "category2", "items": [{"iid":"item4"}, {"iid":"item5"}, {"iid":"item6"}]},
{"id": "category3", "items": [{"iid":"item7"}, {"iid":"item8"}, {"iid":"item9"}]},
{"id": "category4", "items": [{"iid":"item0"}]}
];
$.each(jsonCats, function(key, value) {
var category = $("<li>" + this.id + "</li>");
var items = this.items;
$("#categories").append(category);
category.click(function() {
$("#items").empty();
for (var j in items) {
var item = $("<option>" + items[j].iid + "</option>");
$("#items").append(item);
}
});
});
Pour voir un exemple: http://jsfiddle.net/tive/U63EY/
EDIT: Maintenant, je lis à nouveau votre question. .. il est en fait préférable d'utiliser pour les boucles, car c'est plus rapide. $ .each() est un wrapper de la boucle for de toute façon. (D'où l'exemple: D)
La beauté de JSON est que vous n'avez pas besoin de l'analyser. C'est déjà un objet JavaScript. Ce que vous devez faire est parcourir les valeurs et construire la sortie pour votre liste de catégories.
Sans voir votre structure JSON je ne peux plus faire de recommandations.
Vous voulez dire, la beauté de '$ .getJSON', non? (JSON est une valeur de chaîne qui doit être analysée par 'JSON.parse()' ou par une fonction analogue, afin d'obtenir la valeur de l'objet correspondant.) –
Ceci n'est nécessaire que si l'extraction est effectuée via AJAX. JSON lui-même ne l'exige pas. –
Je pense que vous confondez JSON avec la notation littérale d'objet de JavaScript. Exemple: 'var json = '{" foo ": 123}'; var obj = {toto: 123}; '. JSON est, par définition, une chaîne (valeur). Il doit d'abord être analysé dans une valeur d'objet. Si ce que vous voulez dire n'est pas une chaîne, alors ce n'est pas JSON. –
- 1. quelle est la meilleure façon de découper une chaîne
- 2. Quelle est la meilleure façon de gérer une chaîne JSON mal formatée?
- 3. quelle est la meilleure façon de diviser la chaîne
- 4. quelle est la meilleure façon de générer JSON de C#
- 5. Quelle est la meilleure façon de manipuler la chaîne suivante?
- 6. Quelle est la meilleure façon de générer cette chaîne? (NSMutableString ...)
- 7. Quelle est la meilleure façon d'analyser cette chaîne?
- 8. Quelle est la meilleure façon de convertir csv en chaîne?
- 9. Quelle est la meilleure façon de remplacer une chaîne dans une chaîne de rubis?
- 10. Quelle est la meilleure façon d'exécuter `sum_by_sql`?
- 11. Quelle est la meilleure façon d'apprendre WebGL
- 12. Quelle est la meilleure façon d'apprendre CUDA?
- 13. Quelle est la meilleure façon d'implémenter hashCode()?
- 14. Quelle est la meilleure façon d'interroger cela?
- 15. Quelle est la meilleure façon d'apprendre WCF?
- 16. Quelle est la meilleure façon d'analyser une chaîne à partir d'une chaîne plus longue?
- 17. Quelle est la meilleure façon de conduire une animation?
- 18. Quelle est la meilleure façon de rejouer une "session"
- 19. Faites-le sur une requête: Quelle est la meilleure façon?
- 20. MVC Grid avec une datepicker - quelle est la meilleure façon?
- 21. Quelle est la meilleure façon d'écrire une application Python GTK +?
- 22. C# Quelle est la meilleure façon de copier une BindingList?
- 23. Quelle est la meilleure façon de concevoir une API client?
- 24. Quelle est la meilleure façon d'annuler une requête WCF asynchrone?
- 25. Quelle est la meilleure façon de déclarer une propriété?
- 26. Quelle est la meilleure façon de déployer une application Pylons?
- 27. Quelle est la meilleure façon d'écrire une application Rails complexe?
- 28. Quelle est la meilleure façon de présenter une photo?
- 29. Quelle est la meilleure façon d'appliquer une ombre portée?
- 30. Quelle est la meilleure façon de surveiller une application .NET?
'getJson' tire une chaîne JSON à partir du serveur. N'auras-tu pas besoin de l'utiliser de toute façon? – pb2q
Stockez les résultats d'un appel 'getJSON', puis analysez les parties dont vous avez besoin en cliquant sur ... – TheZ
' .find() 'est uniquement pour les éléments DOM. –