我正在读取以下JSON,并使用GSON将其转换为一个对象,然后我可以使用该对象来访问该对象的属性,以帮助在我的应用程序中显示图像。
但是,我想使用的一个字段imageURL返回的值是空值。查看json (下面的链接),我们可以清楚地看到它不是空的。
https://api.letsbuildthatapp.com/youtube/home_feed
我已经使用调试器演示了为每个imageURL获取的空值:
因此,对象为imageURL提供了空值,但链接却不是。怎么一回事?
下面是我为获取和解析JSON对象而编写的函数:
private fun fetchJson() {
println("Attempting to fetch JSON")
val url = "https://api.letsbuildthatapp.com/youtube/home_feed"
val request = Request.Builder().url(url).build()
val client = OkHttpClient()
client.newCall(request).enqueue(object : Callback {
override fun onResponse(call: Call, response: Response) {
val body = response.body?.string()
println(body)
val gson = GsonBuilder().create()
val homeFeed = gson.fromJson(body, HomeFeed::class.java)
runOnUiThread {
recyclerView_main.adapter = MainAdapter(homeFeed)
}
}
override fun onFailure(call: Call, e: IOException) {
println("failed to execute request")
}
}
)
}
我的HomeFeed类是这样的:
class HomeFeed(val videos: List<Video>)
class Video(val id: Int, val name: String, val link: String, val imageURL: String, numberOfViews: Int,
val channel: Channel)
class Channel(val name: String, val profileImageUrl: String)
我相信这应该是足够详细,但如果需要更多的信息,请让我知道。
谢谢。
发布于 2020-02-11 21:51:46
尝试使用此对象,您应该使用相同的名称,"imageUrl“而不是"imageURL":
data class HomeFeed(
val user: User,
val videos: List<Video>
)
data class User(
val id: Int,
val name: String,
val username: String
)
data class Video(
val channel: Channel,
val id: Int,
val imageUrl: String,
val link: String,
val name: String,
val numberOfViews: Int
)
data class Channel(
val name: String,
val numberOfSubscribers: Int,
val profileImageUrl: String
)
https://stackoverflow.com/questions/60177867
复制相似问题