Setelah mencari melalui beberapa perpustakaan yang ada untuk JSON, saya akhirnya berakhir dengan dua ini:
- Jackson
- Google GSon
Saya sedikit memihak GSON, tetapi kabar di internet adalah bahwa GSon menderita masalah kinerja langit tertentu (pada September 2009).
Saya melanjutkan perbandingan saya; Sementara itu, saya mencari bantuan untuk mengambil keputusan.
Jawaban:
Saya melakukan penelitian ini minggu lalu dan saya berakhir dengan 2 perpustakaan yang sama. Karena saya menggunakan Spring 3 (yang mengadopsi Jackson dalam tampilan default Json ' JacksonJsonView '), itu lebih alami bagi saya untuk melakukan hal yang sama. 2 lib hampir sama ... pada akhirnya mereka hanya memetakan ke file json! :)
Bagaimanapun seperti yang Anda katakan, Jackson memiliki kinerja + dan itu sangat penting bagi saya. Proyek ini juga cukup aktif seperti yang Anda lihat dari halaman web mereka dan itu pertanda yang sangat bagus juga.
sumber
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):
sumber
Gson 1.6 sekarang termasuk streaming API tingkat rendah dan pengurai baru yang sebenarnya lebih cepat dari Jackson.
sumber
Menambahkan ke jawaban lain yang sudah diberikan di atas. Jika kepekaan kasus penting bagi Anda, maka gunakan Jackson. Gson tidak mendukung ketidakpekaan huruf untuk nama-nama kunci, sedangkan jackson tidak.
Berikut ini dua tautan terkait
(Tidak) Dukungan sensitivitas case di Gson: GSON: Bagaimana cara mendapatkan elemen case sensitif dari Json?
Dukungan sensitivitas kasus di Jackson https://gist.github.com/electrum/1260489
sumber
MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES
, ditambahkan dalam Jackson 2.5. Jadi tidak perlu menambahkan kode khusus untuk itu.Tampaknya GSon tidak mendukung JAXB. Dengan menggunakan kelas beranotasi JAXB untuk membuat atau memproses pesan JSON, saya dapat berbagi kelas yang sama untuk membuat antarmuka Restful Web Service dengan menggunakan pegas MVC.
sumber