J'ai un serveur qui renvoie un très gros message JSON et mon application client ne dépend que d'une partie de cette réponse. L'application cliente doit vérifier si la propriété "xyz" existe dans le message JSON et, selon le résultat, exécuter un cas d'utilisation spécifique.
Pour cette exigence, la conversion de l'ensemble du message JSON en objet me semble un peu chère, d'où cette question.
Existe-t-il un langage de requête JSON standard comme celui que nous avons pour XML? Si oui, quels sont les meilleurs connaissent l'implémentation de ce langage de requête en Java.
FYI: Changer ou ajouter un nouveau service côté serveur n'est pas une option.
JSON.getString(json_string, 'foo.22.bar')
(pour la propriété "bar" dans l'élément 22 de la liste de la propriété "foo", qui contient une chaîne)JSON baz = new JSON(json_string); baz.getString('foo.22.bar');
, par exempleRéponses:
Pourquoi ne pas simplement utiliser javascript? (JSON est la notation d'objet Javascript après tout). Vous n'aurez alors pas à analyser ou manipuler le JSON.
EDIT Jetez un œil à http://json.org/java
Ça ne l'est pas. Désérialiser un objet est bon marché (testez-le vous-même au banc). Parler à l'API externe sera un ordre de grandeur plus cher. Vous pourriez manipuler directement la chaîne, ce qui pourrait être légèrement plus rapide, mais vous risqueriez des bogues, réduiriez l'extensibilité et réduiriez la lisibilité. Un coût élevé.
la source
"Mesurez, ne devinez pas". Oui la sérialisation et la désérialisation d'objets peuvent être chères en théorie, mais quels sont les objectifs de performance de votre application? Si la (dé) sérialisation de l'objet ne pousse pas vos performances à des niveaux inacceptables, ne vous en faites pas :-). La clé est bien sûr de savoir quelles devraient être les limites de performance (par exemple, le temps de réponse à l'utilisateur en 2 secondes) et de mesurer chaque partie du cycle de demande / réponse.
la source