Gson, değer = null olan harita girişlerini yok sayıyor


132
Gson gson = new Gson();

Map<String,Object> map = new HashMap<String, Object>();
map.put("a", 1);
map.put("b", null);

System.out.println(gson.toJson(map)); //prints {"a":1}

Tüm girişleri dahil etmesini nasıl sağlayabilirim?

Yanıtlar:


299

Bkz. Gson Kullanıcı Kılavuzu - Boş Nesne Desteği :

Gson'da uygulanan varsayılan davranış, boş nesne alanlarının göz ardı edilmesidir. Bu, daha kompakt bir çıktı formatı sağlar; ancak, JSON biçimi Java biçimine geri dönüştürülürken, istemci bu alanlar için varsayılan bir değer tanımlamalıdır.

Null çıktı vermek için bir Gson örneğini şu şekilde yapılandırabilirsiniz:

Gson gson = new GsonBuilder().serializeNulls().create();

10
Kılavuz, arama için daha optimize edilmelidir. Az miktarda başarı kullandığım zaman her şeyi okumayacağım. Bu google'daki ilk sonuçtu. Sorunum düzeltildi.
Mathijs Segers

1
@MathijsSegers Fantastik kütüphanelerin bazıları dokümantasyonsuz. Kaynak kodlarını incelerken çok fazla sorun yaşıyorlar (ki bu da yine pek çok oluşturucu modeliyle birlikte).
pinkpanther

13
@MathijsSegers Ve bu SO ve Google'ın güzelliği. Google "gson null yoksay" ı kullanabilirim ve bu yanıtı kılavuzu ve içinde bir yanıt bulmak zorunda kalmadan 3 saniye içinde bulabilirim.
joshden

2
Sınıftaki tüm NULL alanları değil, yalnızca bir NULL alanı nasıl dahil edilir? Gerekli alanın üstüne ekleyebileceğim bir Ek Açıklama var mı?
Salam El-Banna

bu çözüm makul görünüyor ve işe yaramasını bekliyordum! ama öyle değil! herhangi bir fikir?
Arman Ramezanzadeh
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.