为什么我的改造实例无法解析特定字段?

Why is my retrofit instance failing to parse a specific field?

我们最近在我们的一个模型中添加了一个字段 p_status/pStatus。出于某种原因,我们的改造实例无法填充该字段。

以下是我将字段添加到模型的方式:

@SerializedName("p_status")
private String pStatus;

以下是我们设置改装实例的方式:

    @Provides
    @Singleton
    fun provideRetrofit(client: OkHttpClient): Retrofit {
        return Retrofit.Builder()
                .baseUrl(Config.ENDPOINT)
                .client(client)
                .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
                .addConverterFactory(GsonConverterFactory.create(
                        GsonBuilder()
                                .setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES)
                                .create()))
                .build()
    }

出于某种原因 pStatus 总是 null。有谁知道为什么?

编辑: 这是我尝试解析的 json 的示例(我删除了一些 confidential/proprietary 的字段)

{
    "language": "en_CA",
    "height_ft": 5,
    "height_in": 9,
    "n_message": true,
    "n_reminders": false,
    "n_allowed": true,
    "app_version": "0.81",
    "p_enabled": true,
    "paused": false,
    "created_at": "2018-07-20T16:59:07.000Z",
    "modified_at": "2019-08-16T16:41:52.000Z",
    "p_status": "pending",
    ...
}

这是 pStatus

的 setter 和 getter
    public void setPStatus(String pStatus) {
        this.pStatus = pStatus;
    }

    public String getPStatus() {
        return pStatus;
    }

这是class的模型(我删除了一堆专有的东西)

public class User implements Serializable, Cloneable, IUser {

    private String id;
    @SerializedName("first_name")
    private String firstName;
    @SerializedName("last_name")
    private String lastName;
    private String email;
    @SerializedName("location")
    private String location;
    private String language;
    private String gender;
    private int age;
    private boolean paused;
    @SerializedName("height_ft")
    private int heightFt;
    @SerializedName("height_in")
    private int heightIn;
    private int heightCm;
    @SerializedName("app_version")
    private String appVersion;
    @SerializedName("created_at")
    private String createdAt;
    @SerializedName("modified_at")
    private String modifiedAt;
    @SerializedName("deleted_at")
    private String deletedAt;
    @SerializedName("p_status")
    private String pStatus;


    public String getId() {
        return id;
    }

    @Override
    public String getName() {
        return getFirstName();
    }

    @Override
    public String getAvatar() {
        return null;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getLocation() {
        return location != null ? location : "";
    }

    public void setLocation(String location) {
        this.location = location != null ? location : "";
    }

    public String getLanguage() {
        return language;
    }

    public void setLanguage(String language) {
        this.language = language;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public boolean getPaused() {
        return paused;
    }

    public void setPaused(boolean paused) {
        this.paused = paused;
    }

    public int getHeightFt() {
        return heightFt;
    }

    public void setHeightFt(int heightFt) {
        this.heightFt = heightFt;
    }

    public int getHeightIn() {
        return heightIn;
    }

    public void setHeightIn(int heightIn) {
        this.heightIn = heightIn;
    }

    public int getHeightCm() {
        return heightCm;
    }

    public void setHeightCm(int heightCm) {
        this.heightCm = heightCm;
    }

    public String getAppVersion() {
        return appVersion;
    }

    public void setAppVersion(long appVersion) {
        this.appVersion = Long.toString(appVersion);
    }

    public String getCreatedAt() {
        return createdAt;
    }

    public void setCreatedAt(String createdAt) {
        this.createdAt = createdAt;
    }

    public String getModifiedAt() {
        return modifiedAt;
    }

    public void setModifiedAt(String modifiedAt) {
        this.modifiedAt = modifiedAt;
    }

    public String getDeletedAt() {
        return deletedAt;
    }

    public void setDeletedAt(String deletedAt) {
        this.deletedAt = deletedAt;
    }

}

我们从错误的端点发送 p_status。