Jackson dan Gson adalah paket Java JSON paling lengkap mengenai dukungan pengikatan data aktual; banyak paket lain hanya menyediakan pengikatan Peta / Daftar primitif (atau model pohon setara). Keduanya memiliki dukungan lengkap untuk tipe generik, dan juga konfigurasi yang cukup untuk banyak kasus penggunaan umum.
Karena saya lebih akrab dengan Jackson, berikut adalah beberapa aspek di mana saya pikir Jackson memiliki dukungan yang lebih lengkap daripada Gson (permintaan maaf jika saya kehilangan fitur Gson):
- Dukungan anotasi yang luas; termasuk pewarisan penuh, dan anotasi "campuran" lanjut (kaitkan anotasi dengan kelas untuk kasus di mana Anda tidak dapat langsung menambahkannya)
- Streaming (incremental) streaming, penulisan, untuk kasus penggunaan dengan kinerja sangat tinggi (atau terbatas memori); dapat bercampur dengan pengikatan data (bind sub-tree) - EDIT : versi terbaru Gson juga menyertakan streaming reader
- Model pohon (akses mirip DOM); dapat mengkonversi antara berbagai model (pohon <-> objek java <-> aliran)
- Dapat menggunakan konstruktor apa pun (atau metode pabrik statis), bukan hanya konstruktor default
- Bidang dan akses pengambil / penyetel (versi gson sebelumnya hanya menggunakan bidang, ini mungkin telah berubah)
- Dukungan JAX-RS out-of-box
- Interoperabilitas: juga dapat menggunakan anotasi JAXB, memiliki dukungan / penyelesaian untuk paket umum (joda, ibatis, cglib), bahasa JVM (asyik, clojure, scala)
- Kemampuan untuk memaksa penanganan tipe statis (dinyatakan) untuk keluaran
- Dukungan untuk deserialisasi tipe polimorfik (Jackson 1.5) - dapat membuat cerita bersambung DAN men-deserialisasi hal-hal seperti Daftar dengan benar (dengan informasi tipe tambahan)
- Dukungan terintegrasi untuk konten biner (base64 ke / dari JSON Strings)