在我的android应用程序中,我定义了太多的模型类,我使用了大写的属性名称,如下所示:
public String FirstName;
public String LastName;
使用此命名策略,retrofit
无法将json字段名称与我的java类匹配,因为web api发送了驼峰名称:
public String firstName;
public String lastName;
因此,我必须为每个字段使用@SerializedName
属性来告知改造json
名称是什么。这很难,因为有很多这些属性:
@SerializedName("firstName")
public String FirstName;
@SerializedName("lastName")
public String LastName;
GsonConvertorFactory
中是否有任何配置可以避免这种情况?
答案 0 :(得分:3)
您应该尊重java naming conventions并重命名字段。
答案 1 :(得分:1)
虽然我接受我应该更正我的命名约定,但以下代码是向Gson
添加自定义命名策略的方法:
GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.setFieldNamingStrategy(new FieldNamingStrategy() {
@Override
public String translateName(Field f) {
String fieldName = f.getName();
return Character.toLowerCase(fieldName.charAt(0)) + fieldName.substring(1);
}
});