GSON 能否以不区分大小写的方式进行反序列化

2022-09-01 18:47:18

在.NET桌面应用程序和Java服务器之间的通信原型设计中,使用REST和JSON帖子,我遇到了一个区分大小写的问题。.NET 对象在 Pascal 大小写(这是 .NET 的常规)中具有属性,例如:(等),而同一对象的 Java 表示使用驼峰大小写,例如 .Symbol, EntryValuesymbol, entryValue

服务器接收 json 值如下:

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

但Gson不会以不区分大小写的方式进行反序列化。有没有办法让Gson做到这一点?


答案 1

GsonBuilder 上使用 FieldNamingPolicy 来获取你的对象。你的似乎符合UPPER_CAMEL_CASEGson

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

对于任何例外,请使用@SerializedName注释对类字段进行批注。


答案 2