【发布时间】:2020-05-13 03:46:44
【问题描述】:
请您帮我理解如何使用 GSON 解析嵌套 json 文件中的数据。我查看了发布的其他类似问题,但看不到我在哪里犯了错误。我正在尝试从我的 json 文件中获取 id、用户、技术人员和帐户。
我的 JSON 文件如下所示:
{
"operation": {
"result": {
"message": "successful",
"status": "done"
},
"details": [
{
"id": "106818",
"user": "Leona",
"technician": "45441",
"account": "Inc",
"status": "Open"
}
]
}
}
代码:
val url = "https://myURL"
val request = Request.Builder().url(url).build()
val client = OkHttpClient()
client.newCall(request).enqueue(object :Callback{
override fun onFailure(call: Call, e: IOException) {
println("Failed - onFailure")
}
override fun onResponse(call: Call, response: Response) {
val body = response?.body()?.string()
println(body)
val gson = GsonBuilder().create()
gson.fromJson(body, HomeFeed::class.java)
}
})
}
}
class HomeFeed(val details: List<Details>)
class Details(val id: String, val user:String, val technician:String, val account:String)
错误:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.kotlinjsontube, PID: 10905
java.lang.NullPointerException: Attempt to invoke interface method 'int java.util.Collection.size()' on a null object reference
at com.example.kotlinjsontube.MainAdapter.getItemCount(MainAdapter.kt:13)
谢谢。
【问题讨论】:
-
details字段位于operation字段内。 -
你有什么错误吗?