我有一个模型类,用于从 api 获取作业列表,其中包含带有对象的 arrayList 作为描述作业模型的另一个类模型:
class JobModel(@field:SerializedName("company_name")
@field:Expose
val company_name: String, @field:SerializedName("lastdate")
@field:Expose
val lastdate: String, @field:SerializedName("id")
@field:Expose
var id: Int, @field:SerializedName("position")
@field:Expose
var position: String?, @field:SerializedName("location")
@field:Expose
val location: String, @field:SerializedName("job_link")
@field:Expose
val job_link: String, @field:SerializedName("seen")
@field:Expose
val isSeen: Boolean, @field:SerializedName("in_notepad")
@field:Expose
val in_notepad: Boolean, @field:SerializedName("original_url")
@field:Expose
val original_url: String)
然后,我必须从 json 响应中获取一个名为 "contact_data"
的字段作为 JsonObject。所以,我将这个字段添加到我的工作模型类中:
class JobModel(@field:SerializedName("company_name")
@field:Expose
val company_name: String, @field:SerializedName("lastdate")
@field:Expose
val lastdate: String, @field:SerializedName("id")
@field:Expose
var id: Int, @field:SerializedName("position")
@field:Expose
var position: String?, @field:SerializedName("location")
@field:Expose
val location: String, @field:SerializedName("job_link")
@field:Expose
val job_link: String, @field:SerializedName("seen")
@field:Expose
val isSeen: Boolean, @field:SerializedName("in_notepad")
@field:Expose
val in_notepad: Boolean, @field:SerializedName("original_url")
@field:Expose
val original_url: String, @field:SerializedName("contact_data")
@field:Expose
val contact_data: JsonObject)
可以使用适配器在 RV 上显示作业列表。我可以从 json 中获取所有数据并将其显示在我的房车上。 但是 现在,在添加一个字段后,我无法在 RV 上显示任何数据。我想也许问题出在不同于模型类的另一个地方,但没能找到它。因此,我决定对包含新字段的行进行注释,结果我在房车上看到了所有信息。什么会导致这样的问题,我该如何解决?
附言如果您需要,我会添加一些更有用的信息,但请告诉我您需要什么。
最佳答案
为 contact_data 对象中的键创建另一个类
class contactData(@field:SerializedName("conact_name")
val contact_name: String,
@field:SerializedName("contact_number")
val contact_number: String)
然后使用 contact_data 序列化键而不是 JsonObject 引用此类名称。
@field:SerializedName("contact_data")
@field:Expose
val contact_data: contactData
关于android - 为什么我不能从 json Retrofit 中获取特殊字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56437442/