Podczas prototypowania komunikacji między aplikacją .NET na komputer i serwerem Java, używając usługi REST z postami JSON, pojawia się problem z rozróżnianiem wielkości liter. Obiekty .NET mają tam właściwości w Pascal Casing (co jest typowe dla .NET), np .: Symbol, EntryValue
(itp.), Podczas gdy reprezentacja Java tego samego obiektu wykorzystuje obudowę wielbłąda, np. symbol, entryValue
.Może deserializować GSON w sposób niewrażliwy na wielkość znaków
Serwer odbiera wartość json jako:
{"EntrySize":100,"Symbol":"AMZN"}
Ale Gson nie deserializowania w przypadku niewrażliwe sposób. Czy jest jakiś sposób, aby Gson to zrobił? Aby uzyskać obiekt Gson
, należy użyć
Awesome! Naprawiono to łatwo, stosując zasadę UPPER_CAMEL_CASE. Czy znaleźliście to w dokumentach? W moim pośpiechu, aby to przetestować, nie byłem w stanie w pełni przeczytać dokumentów, a szybkie wyszukiwania nie wskazywały na odpowiedź tak wyraźnie, jak ty. Dzięki! –
@Sam Jest daleko w dole strony w [podręczniku użytkownika] (https://sites.google.com/site/gson/gson-user-guide#TOC-JSON-Field-Naming-Support). Upewnij się, że przeglądasz GsonBuilder, aby zobaczyć wszystkie konfiguracje obsługiwane przez Gson! –
@Jeff Bowman To właściwie nie jest prawidłowe rozwiązanie, ponieważ NIE pasuje do wielkości liter. Dopasowuje tylko to, co jest zdefiniowane w SerializedName lub zaczyna się od dużej litery w stylu wielbłąda. Jeśli istnieje json, który zaczyna się małą literą (bez adnotacji SerializedName), nie będzie zgodny. – Bevor