我需要解析以下 JSON
负载:
{
"status": "success","data": {
"stats": {
"total": 11812,"offset": 0,"limit": 50,"order": "desc","base": "USD","totalMarkets": 77573,"totalExchanges": 372,"totalMarketCap": 1692792022714.2244,"total24hVolume": 78345365115.11235
},"base": {
"symbol": "USD","sign": "$"
},"coins": [
{
"id": 1,"uuid": "Qwsogvtv82FCd","slug": "bitcoin-btc","symbol": "BTC","name": "Bitcoin",...
}
我对“硬币”的价值有疑问:
fun fetchJson() {
val url = "https://api.coinranking.com/v1/public/coins"
val request = Request.Builder().url(url).build()
val client = OkHttpClient()
client.newCall(request).enqueue(object: okhttp3.Callback {
override fun onFailure(call: okhttp3.Call,e: IOException) {
println("Failed")
}
override fun onResponse(call: okhttp3.Call,response: okhttp3.Response) {
val body = response?.body?.string()
println(body)
val gson = GsonBuilder().create()
val coins = gson.fromJson(body,coinrank::class.java)
println("THESE ARE THE COINS : " +coins)
}
})
}
}
数据模型:
class coinrank(val status: String?,val data: Array<dataR>?)
class dataR (val coins: List<justCoin>?)
class justCoin (
val id: Int?,val name: String?,val description: String?,val slug: String?,val symbol: String?,val iconUrl: String?
)
出现错误:
Caused by: java.lang.IllegalStateException: Expected BEGIN_ARRAY but 在第 1 行第 29 列路径 $.data
处为 BEGIN_OBJECT在线:val coins = gson.fromJson(body,coinrank::class.java)
我尝试将 val data: Array<dataR>?
更改为 val data: JSONObject
",但仍然找不到访问这些值的方法,有人可以帮助我吗?