为什么我不能从 json Retrofit 中获取特殊字段?

共1个回答,已解决, 标签: android json retrofit2 recycler-adapter

我有一个从 api 获取作业列表的模型类,其中包含带有对象的 arrayList,作为描述作业模型的另一个类模型:

类 job model (@ field: 序列化名称 ("company_ name"))
@ Field: 暴露
Val company_ name: String,@ field: 序列化名称 (“last date”)
@ Field: 暴露
Val last date: String,@ field: 序列化名称 (“id”)
@ Field: 暴露
变量 id: Int,@ field: 序列化名称 (“位置”)
@ Field: 暴露
Var 位置: 字符串?,@ field: 序列化名称 (“位置”)
@ Field: 暴露
Val 位置: 字符串,@ field: 序列化名称 (“job _ link”)
@ Field: 暴露
Val job _ link: String,@ field: 序列化名称 (“已看到”)
@ Field: 暴露
Val isSeen: 布尔,@ field: 序列化名称 (“in_记事本”)
@ Field: 暴露
Val in _ 记事本: 布尔,@ field: 序列化名称 (“原始 _ url”)
@ Field: 暴露
Val origin_ url: String)

然后,我必须从 json 响应中获得一个名为"contact_data"如 JsonObject。所以,我在我的工作模型类中添加了这个字段:

类 job model (@ field: 序列化名称 ("company_ name"))
@ Field: 暴露
Val company_ name: String,@ field: 序列化名称 (“last date”)
@ Field: 暴露
Val last date: String,@ field: 序列化名称 (“id”)
@ Field: 暴露
变量 id: Int,@ field: 序列化名称 (“位置”)
@ Field: 暴露
Var 位置: 字符串?,@ field: 序列化名称 (“位置”)
@ Field: 暴露
Val 位置: 字符串,@ field: 序列化名称 (“job _ link”)
@ Field: 暴露
Val job _ link: String,@ field: 序列化名称 (“已看到”)
@ Field: 暴露
Val isSeen: 布尔,@ field: 序列化名称 (“in_记事本”)
@ Field: 暴露
Val in _ 记事本: 布尔,@ field: 序列化名称 (“原始 _ url”)
@ Field: 暴露
Val origin_ url: String,@ field: 序列化名称 (“contact_ data”)
@ Field: 暴露
瓦尔 contact_data: JsonObject)

可以在带有适配器的 RV 上显示作业列表。我可以从 json 中获取所有数据,并在我的 RV 上显示。但是现在,在添加了一个字段后,我无法在我的 RV 上显示任何数据。我认为问题可能位于不同于 model 类的另一个地方,但没有找到它。所以,我决定评论包含新字段的行,结果我在我的房车上看到了所有信息。是什么导致了这样的问题,我该如何解决?

P.s.如果你需要,我会添加一些更有用的信息,但是请告诉我你需要什么。

第1个答案(采用)

为 contact_ data 对象中的键创建另一个类

ContactData 类 (@ field: 序列化名称 ("conactname")
Val contact_ name: String,
@ Field: 序列化名称 ("contact _ number")
Val contact_ number: String)

然后用 contact_ data 序列化键引用这个类名,而不是 JsonObject。

@ Field: 序列化名称 ("contact_ data")
@ Field: 暴露
瓦尔 contact_data: contactData

相关问题

无法通过新项目从 jcenter 获取依赖项 [已关闭] 注意: 无法读取获取 [Ljava.lang.Object;@79d6c4df 的 kotlin 元数据 我的单身可以被多次调用 如何通过拆分字符串将数组转换为对象? JSON 响应对于 int 值总是返回零 在数组中每个值的中间插入值 使用改造参数 "soap12:Body" 使用 Xml Web 服务在类中没有匹配项 为什么我不能从 json Retrofit 中获取特殊字段?