Jackson ve Gson, gerçek veri bağlama desteği ile ilgili en eksiksiz Java JSON paketleridir; diğer birçok paket sadece ilkel Harita / Liste (veya eşdeğer ağaç modeli) bağlaması sağlar. Her ikisi de genel tipler için tam desteğe ve birçok yaygın kullanım durumu için yeterli yapılandırmaya sahiptir.
Jackson'a daha aşina olduğum için, Jackson'ın Gson'dan daha eksiksiz bir desteğe sahip olduğunu düşündüğüm bazı yönler (bir Gson özelliğini özlediğim için özür dilerim):
- Kapsamlı ek açıklama desteği; tam devralma ve gelişmiş "karma" ek açıklamalar dahil (ek açıklamaları doğrudan ekleyemediğiniz durumlar için bir sınıfla ilişkilendirin)
- Ultra yüksek performans (veya bellek sınırlı) kullanım durumları için akış (artımlı) okuma, yazma; veri bağlama ile karıştırabilirsiniz (alt ağaçları bağlamak) - EDIT : Gson son sürümleri de akış okuyucu içerir
- Ağaç modeli (DOM benzeri erişim); çeşitli modeller arasında dönüştürme yapabilirsiniz (ağaç <-> java nesnesi <-> akışı)
- Yalnızca varsayılan kurucu değil, herhangi bir kurucu (veya statik fabrika yöntemi) kullanabilir
- Alan ve alıcı / ayarlayıcı erişimi (önceki gson sürümlerinde yalnızca alanlar kullanılır, bu değişmiş olabilir)
- Kullanıma hazır JAX-RS desteği
- Birlikte çalışabilirlik: JAXB ek açıklamalarını da kullanabilir, ortak paketler (joda, ibatis, cglib), JVM dilleri (groovy, clojure, scala) için destek / geçici çözümlere sahiptir
- Çıktı için statik (beyan edilmiş) tür işlemeyi zorlama yeteneği
- Polimorfik tiplerin serileştirilmesi için destek (Jackson 1.5) - Liste gibi şeyleri doğru şekilde serileştirebilir ve serileştirebilir (ek tip bilgileriyle)
- İkili içerik için entegre destek (base64 / JSON Dizeleri)