【问题标题】:How can I avoid using to many @SerializedName s?如何避免使用很多 @SerializedName ?
【发布时间】:2017-06-13 07:46:35
【问题描述】:

在我的 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 中是否有任何配置可以避免这种情况?

【问题讨论】:

标签: java json gson retrofit android


【解决方案1】:

您应该尊重java naming conventions 并重命名您的字段。

【讨论】:

  • 更正,这不是你喜欢的答案,但你应该按照来解决你的问题。
【解决方案2】:

虽然我接受我应该更正我的命名约定,但以下代码是向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);
        }
    });

【讨论】:

    猜你喜欢
    • 2021-12-12
    • 2012-04-27
    • 1970-01-01
    • 2019-03-27
    • 2020-01-28
    • 2012-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多