首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >为什么在android studio中使用gson解析json对象会得到null值?

为什么在android studio中使用gson解析json对象会得到null值?
EN

Stack Overflow用户
提问于 2020-02-12 05:47:56
回答 1查看 315关注 0票数 2

我正在读取以下JSON,并使用GSON将其转换为一个对象,然后我可以使用该对象来访问该对象的属性,以帮助在我的应用程序中显示图像。

但是,我想使用的一个字段imageURL返回的值是空值。查看json (下面的链接),我们可以清楚地看到它不是空的。

https://api.letsbuildthatapp.com/youtube/home_feed

我已经使用调试器演示了为每个imageURL获取的空值:

Debugger output

因此,对象为imageURL提供了空值,但链接却不是。怎么一回事?

下面是我为获取和解析JSON对象而编写的函数:

代码语言:javascript
代码运行次数:0
运行
复制
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类是这样的:

代码语言:javascript
代码运行次数:0
运行
复制
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)

我相信这应该是足够详细,但如果需要更多的信息,请让我知道。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-12 05:51:46

尝试使用此对象,您应该使用相同的名称,"imageUrl“而不是"imageURL":

代码语言:javascript
代码运行次数:0
运行
复制
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
)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60177867

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档