Po przeszukaniu niektórych istniejących bibliotek JSON, w końcu skończyłem z tymi dwoma:
- Jackson
- Google GSon
Jestem trochę stronniczy w stosunku do GSON, ale w sieci słychać, że GSon cierpi na pewien problem z wydajnością na niebie (od września 2009).
Kontynuuję moje porównanie; w międzyczasie szukam pomocy w podjęciu decyzji.
Odpowiedzi:
Zrobiłem to badanie w zeszłym tygodniu i skończyłem z tymi samymi 2 bibliotekami. Kiedy używam Spring 3 (który przyjmuje Jacksona w domyślnym widoku Jsona „ JacksonJsonView ”), bardziej naturalne było dla mnie to samo. 2 lib są prawie takie same ... na końcu po prostu mapują do pliku json! :)
W każdym razie, jak powiedziałeś, Jackson ma wydajność + i jest to dla mnie bardzo ważne. Projekt jest również dość aktywny, co widać na ich stronie internetowej, co również jest bardzo dobrym znakiem.
źródło
Jackson i Gson są najbardziej kompletnymi pakietami Java JSON pod względem faktycznej obsługi wiązania danych; wiele innych pakietów zapewnia tylko prymitywne wiązanie Map / List (lub równoważny model drzewa). Oba mają pełną obsługę typów ogólnych, a także wystarczającą konfigurowalność dla wielu typowych przypadków użycia.
Ponieważ jestem bardziej zaznajomiony z Jacksonem, oto niektóre aspekty, w których myślę, że Jackson ma pełniejsze wsparcie niż Gson (przepraszam, jeśli przegapię funkcję Gsona):
źródło
Gson 1.6 zawiera teraz niskopoziomowy interfejs API do przesyłania strumieniowego i nowy analizator składni, który jest w rzeczywistości szybszy niż Jackson.
źródło
Dodanie do innych odpowiedzi już podanych powyżej. Jeśli nie ma znaczenia, czy nie ma znaczenia wielkość liter, skorzystaj z Jackson. Gson nie obsługuje rozróżniania wielkości liter w nazwach kluczy, podczas gdy Jackson.
Oto dwa powiązane linki
(Nie) Obsługa rozróżniania wielkości liter w Gson: GSON: Jak uzyskać element Json bez rozróżniania wielkości liter?
Obsługa rozróżniania wielkości liter w Jackson https://gist.github.com/electrum/1260489
źródło
MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES
, dodane w Jackson 2.5. Nie trzeba więc dodawać do tego niestandardowego kodu.Wygląda na to, że GSon nie obsługuje JAXB. Używając klasy z adnotacjami JAXB do tworzenia lub przetwarzania komunikatu JSON, mogę współużytkować tę samą klasę, aby utworzyć interfejs usługi Restful Web Service przy użyciu sprężynowego MVC.
źródło