Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 为什么我的改造实例无法解析特定字段?_Android_Retrofit2 - Fatal编程技术网

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

Android 为什么我的改造实例无法解析特定字段?,android,retrofit2,Android,Retrofit2,我们最近在一个模型中添加了一个字段p_status/pStatus。出于某种原因,我们的改造实例无法填充该字段 下面是我如何将字段添加到模型中的: @SerializedName(“p_状态”) 私有字符串状态; 下面是我们如何设置改装实例的: @Provides @Singleton fun provideRetrofit(client: OkHttpClient): Retrofit { return Retrofit.Builder()

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

下面是我如何将字段添加到模型中的:

@SerializedName(“p_状态”)
私有字符串状态;
下面是我们如何设置改装实例的:

    @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示例(我删除了一些机密/专有字段)

这是
pStatus

public void设置状态(字符串状态){
this.pStatus=pStatus;
}
公共字符串getPStatus(){
返回pStatus;
}
这是这个类的模型(我删除了一堆专有的东西)

公共类用户实现可序列化、可克隆、IUser{
私有字符串id;
@SerializedName(“名字”)
私有字符串名;
@SerializedName(“姓氏”)
私有字符串lastName;
私人字符串电子邮件;
@序列化名称(“位置”)
私有字符串位置;
私有字符串语言;
私人字符串性别;
私人互联网;
私有布尔运算暂停;
@序列化名称(“高度/英尺”)
私人内部高度;
@序列化名称(“高度单位”)
海顿私人酒店;
私人内部高度cm;
@SerializedName(“应用程序版本”)
私有字符串appVersion;
@SerializedName(“创建于”)
私有字符串createdAt;
@SerializedName(“已修改”)
私有字符串modifiedAt;
@SerializedName(“已删除”)
私有字符串deletedAt;
@序列化名称(“p_状态”)
私有字符串状态;
公共字符串getId(){
返回id;
}
@凌驾
公共字符串getName(){
返回getFirstName();
}
@凌驾
公共字符串getAvatar(){
返回null;
}
公共无效集合id(字符串id){
this.id=id;
}
公共字符串getFirstName(){
返回名字;
}
public void setFirstName(字符串firstName){
this.firstName=firstName;
}
公共字符串getLastName(){
返回姓氏;
}
public void setLastName(字符串lastName){
this.lastName=lastName;
}
公共字符串getEmail(){
回复邮件;
}
公用电子邮件(字符串电子邮件){
this.email=电子邮件;
}
公共字符串getLocation(){
返回位置!=空?位置:“”;
}
公共void集合位置(字符串位置){
this.location=location!=null?位置:“”;
}
公共字符串getLanguage(){
返回语言;
}
公共语言(字符串语言){
这种语言=语言;
}
公共字符串getGender(){
返回性别;
}
公共无效设置性别(字符串性别){
这个。性别=性别;
}
公共整数getAge(){
回归年龄;
}
公共无效设置(整数){
这个。年龄=年龄;
}
公共布尔getPaused(){
返回暂停;
}
public void setPaused(布尔值已暂停){
this.paused=暂停;
}
public int getHeightFt(){
返回高度;
}
公共空间设置高度英尺(内部高度英尺){
this.heightFt=heightFt;
}
public int getHeightIn(){
返回高度;
}
公共空间设置高度(内部高度){
this.heightIn=heightIn;
}
public int getHeightCm(){
返回高度cm;
}
公共空间设置高度cm(内部高度cm){
this.heightCm=heightCm;
}
公共字符串getAppVersion(){
返回appVersion;
}
公共无效setAppVersion(长appVersion){
this.appVersion=Long.toString(appVersion);
}
公共字符串getCreatedAt(){
返回createdAt;
}
公共void setCreatedAt(字符串createdAt){
this.createdAt=createdAt;
}
公共字符串getModifiedAt(){
返回修改数据;
}
公共void setModifiedAt(字符串modifiedAt){
this.modifiedAt=modifiedAt;
}
公共字符串getDeletedAt(){
返回deletedAt;
}
公共void setDeletedAt(字符串deletedAt){
this.deletedAt=deletedAt;
}
}

我们从错误的端点发送了p_状态。

您有正在解析的json示例吗?请提供您的json数据。确保序列化名称与json密钥匹配,并且pStatus具有公共setter方法这是唯一具有
@SerializedName
的字段吗?仅供参考,此注释将覆盖您的
FieldNamingPolicy
尝试更改名称,并查看其是否有效。可能是由于pS vs pS,无法将p_状态映射到getPStatus
{
    "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",
    ...
}