Mam serwer, który zwraca bardzo duży komunikat JSON, a moja aplikacja kliencka jest zależna tylko od części tej odpowiedzi. Aplikacja kliencka musi sprawdzić, czy właściwość „xyz” istnieje w komunikacie JSON i, w zależności od wyniku, uruchomić określoną przypadek użycia.
Dla tego wymogu konwersja całej wiadomości JSON na obiekt brzmi dla mnie nieco drogo i stąd to pytanie.
Czy istnieje standardowy język zapytań JSON, taki jak język XML? Jeśli tak, jakie są najbardziej znane implementacje tego języka zapytań w Javie.
FYI: Zmiana lub dodanie nowej usługi po stronie serwera nie jest opcją.
JSON.getString(json_string, 'foo.22.bar')
JSON baz = new JSON(json_string); baz.getString('foo.22.bar');
, na przykładOdpowiedzi:
Dlaczego nie skorzystać z javascript? (W końcu JSON to JavaScript Object Notation). Wówczas nie będziesz musiał analizować ani manipulować JSON.
EDYCJA Spójrz na http://json.org/java
To nie jest Deserializacja obiektu jest tania (przetestuj go sam). Rozmowa z zewnętrznym API będzie droższa o rząd wielkości. Możesz bezpośrednio manipulować łańcuchem, co może być nieco szybsze, ale ryzykujesz błędami, zmniejszasz rozszerzalność i zmniejszasz czytelność. Wysoki koszt.
źródło
„Mierz, nie zgaduj”. Tak, serializacja i deserializacja obiektów może być droga w teorii, ale jakie są cele wydajnościowe twojej aplikacji? Jeśli serializacja (de) serializacji nie podnosi wydajności do niedopuszczalnego poziomu, nie przejmuj się :-). Kluczem jest oczywiście wiedzieć, jakie powinny być granice wydajności (np. Czas odpowiedzi dla użytkownika w 2 sekundy) i zmierzyć każdą część cyklu żądania / odpowiedzi.
źródło