2012-11-01 14 views
16

.NET masaüstü uygulaması ve Java sunucusu arasında iletişim kurarken, JSON yayınları ile REST kullanarak, bir büyük/küçük harf duyarlılığı sorunuyla karşılaşıyorum. .NET nesneleri, Pascal Casing'de (.NET için geleneksel olan) özelliklere sahiptir, örn .: Symbol, EntryValue (etc), aynı nesnenin Java temsili deve muhafazasını kullanır, örn. symbol, entryValue.GSON, büyük/küçük harfe duyarlı bir şekilde geri dönüştürebilir

sunucusu olarak json değerini alır:

{"EntrySize":100,"Symbol":"AMZN"} 

Ama GSON küçük harf duyarsız bir şekilde serisini etmez. Bunu yapmak için Gson almanın bir yolu var mı?

cevap

33

nesnesini edinmek için GsonBuilder numaralı telefondan FieldNamingPolicy kullanın. Sizinki UPPER_CAMEL_CASE ile eşleşiyor.

İstisnai durumlar için, sınıf alanınıza @SerializedName ek açıklama ekleyerek not ekleyin.

+0

Awesome! Bu UPPER_CAMEL_CASE politikası kullanılarak kolayca düzeltildi. Bunu dokümanlar içinde buldunuz mu? Bunu test etmek için acele etmemde, dokümanlar tamamen okuyamadım ve hızlı aramalar, cevabınızı yaptığınız gibi açık bir şekilde göstermedi. Teşekkürler! –

+0

@Sam [Kullanım kılavuzu] 'ndaki sayfadan çok aşağıda (https://sites.google.com/site/gson/gson-user-guide#TOC-JSON-Field-Naming-Support). Gson'un desteklediği tüm konfigürasyonları görmek için GsonBuilder'ı çevirin! –

+0

@Jeff Bowman Bu aslında geçerli bir çözüm değil, çünkü büyük/küçük harf duyarlı değil. Yalnızca, SeriyeAdı'nda tanımlanmış olanla eşleşir ya da deve durumda stilinde büyük bir harfle başlarsa. Eğer küçük bir harfle başlayan (bir SerializedName ek açıklama olmadan) bir json varsa, eşleşmeyecektir. – Bevor

İlgili konular