Ich habe einen Server, der eine sehr große JSON-Nachricht zurückgibt, und meine Clientanwendung ist nur von einem Teil dieser Antwort abhängig. Die Clientanwendung muss prüfen, ob die Eigenschaft "xyz" in der JSON-Nachricht vorhanden ist, und je nach Ergebnis einen bestimmten Anwendungsfall ausführen.
Für diese Anforderung klingt das Konvertieren der gesamten JSON-Nachricht in ein Objekt für mich etwas teuer und daher diese Frage.
Gibt es eine Standard-JSON-Abfragesprache wie eine für XML? Wenn ja, was ist die beste Implementierung dieser Abfragesprache in Java?
Zu Ihrer Information: Das Ändern oder Hinzufügen eines neuen Dienstes auf der Serverseite ist keine Option.
JSON.getString(json_string, 'foo.22.bar')
JSON baz = new JSON(json_string); baz.getString('foo.22.bar');
, zum BeispielAntworten:
Warum nicht einfach Javascript verwenden? (JSON ist schließlich Javascript Object Notation). Sie müssen dann den JSON nicht analysieren oder manipulieren.
BEARBEITEN Schauen Sie sich http://json.org/java an
Ist es nicht. Das Deserialisieren eines Objekts ist billig (testen Sie es selbst auf dem Prüfstand). Das Gespräch mit der externen API wird um eine Größenordnung teurer. Sie könnten die Zeichenfolge direkt manipulieren, was möglicherweise etwas schneller ist, aber Sie würden Fehler riskieren, die Erweiterbarkeit verringern und die Lesbarkeit verringern. Ein hoher Preis.
quelle
"Messen, nicht raten". Ja, Objektserialisierung und Deserialisierung sind theoretisch teuer, aber was sind die Leistungsziele Ihrer Anwendung? Wenn die Objekt- (De-) Serialisierung Ihre Leistung nicht auf ein inakzeptables Niveau bringt, machen Sie sich darüber keine Sorgen :-). Der Schlüssel ist natürlich zu wissen, wie die Leistungsgrenzen sein sollten (z. B. Antwortzeit an den Benutzer in 2 Sekunden) und jeden Teil des Anforderungs- / Antwortzyklus zu messen.
quelle