Nella comunicazione di prototipazione tra app desktop .NET e server Java, utilizzando REST con post JSON, si verifica un problema di distinzione tra maiuscole e minuscole. Gli oggetti .NET hanno proprietà in Pascal Casing (che è convenzionale per .NET), ad esempio Symbol, EntryValue
(ecc.), Mentre la rappresentazione Java dello stesso oggetto utilizza l'alloggiamento del cammello, ad es. symbol, entryValue
.È possibile deserializzare GSON senza distinzione tra maiuscole e minuscole.
Il server riceve valore JSON come:
{"EntrySize":100,"Symbol":"AMZN"}
Ma GSON non deserializzare in maniera case-insensitive. C'è un modo per convincere Gson a fare questo?
Fantastico! Questo problema è stato facilmente risolto utilizzando la politica UPPER_CAMEL_CASE. L'abbiamo trovato nei documenti? Nella mia fretta di testare questo, non ero in grado di leggere completamente i documenti, e le ricerche veloci non indicavano la risposta chiaramente come hai fatto tu. Grazie! –
@ Sam Si trova in fondo alla pagina nella [guida per l'utente] (https://sites.google.com/site/gson/gson-user-guide#TOC-JSON-Field-Naming-Support). Assicurati di dare un'occhiata a GsonBuilder per vedere tutte le configurazioni supportate da Gson! –
@Jeff Bowman Questa non è una soluzione valida, perché NON corrisponde alla distinzione tra maiuscole e minuscole. Corrisponde solo a ciò che è definito in SerializedName o se inizia con una grande lettera in stile case cammello. Se c'è un json che inizia con una piccola lettera (senza un'annotazione SerializedName), non corrisponderà. – Bevor