Может ли GSON десериализоваться без учета регистра
В прототипировании связи между настольным компьютером .NET и сервером Java, используя REST с сообщениями JSON, я столкнулся с проблемой чувствительности к регистру. У объектов .NET есть свойства в Pascal Casing (что обычно для .NET), например: Symbol, EntryValue
(и т.д.), В то время как представление Java того же объекта использует корпус верблюда, например. Symbol, EntryValue
.
Сервер получает значение json как:
{"EntrySize":100,"Symbol":"AMZN"}
Но Gson не десериализуется без учета регистра. Есть ли способ заставить Гсона сделать это?
Ответы
Ответ 1
Используйте FieldNamingPolicy
на GsonBuilder
, чтобы получить объект Gson
. Ваш, кажется, соответствует UPPER_CAMEL_CASE
.
Gson gson = new GsonBuilder()
.setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE)
.create();
Для любых исключений аннотируйте свое поле класса аннотацией @SerializedName
.