【发布时间】:2018-09-02 15:52:40
【问题描述】:
我正在访问 WordPress API 以使用 Retrofit2 获取帖子,然后当我尝试将值分配给适配器中的视图时:
inner class MainActivityViewHolder(view: View) : RecyclerView.ViewHolder(view) {
fun bind(post: Post) {
with(post) {
itemView.tv_post_title.text = title
itemView.tv_post_date.text = date
itemView.tv_post_content.text = content
}
}
}
Retrofit 的 GET 返回一个 Observable,因此,当它尝试分配时,onErrorResumeNext 中会显示以下错误:
java.lang.IllegalStateException: 应为字符串,但在第 1 行第 373 列路径 $[0].title 处为 BEGIN_OBJECT
这是因为title 键中有一个rendered 键:
{
id:497,
date:"2018-04-08T03:34:12",
[...]
title:{
rendered:"Lorem ipsum dolor sit amet"
}
}
这同样适用于content 和excerpt。如何访问这些 rendereds 密钥?我尝试了类似的东西
val 标题:JsonElement = JsonParser().parse(post.title)
但同样的错误仍然存在。
【问题讨论】:
-
请添加您的代码。
-
做了一些改动。