Может ли GSON десериализоваться без учета регистра - программирование

Может ли GSON десериализоваться без учета регистра

В прототипировании связи между настольным компьютером .NET и сервером Java, используя REST с сообщениями JSON, я столкнулся с проблемой чувствительности к регистру. У объектов .NET есть свойства в Pascal Casing (что обычно для .NET), например: Symbol, EntryValue (и т.д.), В то время как представление Java того же объекта использует корпус верблюда, например. Symbol, EntryValue.

Сервер получает значение json как:

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

Но Gson не десериализуется без учета регистра. Есть ли способ заставить Гсона сделать это?

4b9b3361

Ответ 1

Используйте FieldNamingPolicy на GsonBuilder, чтобы получить объект Gson. Ваш, кажется, соответствует UPPER_CAMEL_CASE.

Gson gson = new GsonBuilder()
        .setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE)
        .create();

Для любых исключений аннотируйте свое поле класса аннотацией @SerializedName.