【发布时间】:2021-09-08 12:40:05
【问题描述】:
这是我必须获取的 JSON 响应:
{
"markets": [
{
"exchange_id": "BINANCE",
"symbol": "BTC-USDT",
"price_unconverted": 37193.095,
"price": 37228.28172528144,
"change_24h": -4.547427178236877,
"spread": 0.000026886707486166165,
"volume_24h": 3422591459.036938,
"status": "recent",
"time": "2021-06-04T22:41:01"
},
{
"exchange_id": "BINANCE",
"symbol": "ETH-USDT",
"price_unconverted": 2734.6549999999997,
"price": 2737.2421349029846,
"change_24h": -3.7432242168250704,
"spread": 0.0003656761718006455,
"volume_24h": 3244286756.710182,
"status": "recent",
"time": "2021-06-04T22:41:01"
},
...
],
"pagination": {
"next": "10"
}
}
我已经为第一个 JSON 对象编写了代码,其中包含数组列表。 我想知道如何在我的代码中获取第二个 JSON 对象,以便获取整个 JSON 对象值。
我的代码 ->
val queue = Volley.newRequestQueue(this) val url = "https://www.cryptingup.com/api/markets"
val jsonObjectRequest = object : JsonObjectRequest(Method.GET, url, null,
Response.Listener {
try {
val markets = it.getJSONArray("markets")
for (i in 0 until markets.length()) {
val marketJsonObject = markets.getJSONObject(i)
val marketObject = Market(
marketJsonObject.getString("exchange_id"),
marketJsonObject.getString("symbol"),
marketJsonObject.getString("price_unconverted"),
marketJsonObject.getString("price"),
marketJsonObject.getString("change_24th"),
marketJsonObject.getString("spread"),
marketJsonObject.getString("volume_24th"),
marketJsonObject.getString("status"),
marketJsonObject.getString("time")
)
marketList.add(marketObject)
recyclerAdapter =
MarketRecyclerAdapter(this, marketList)
recyclerMarket.adapter = recyclerAdapter
recyclerMarket.layoutManager = layoutManager
}
} catch (e: JSONException) {
Toast.makeText(this, "$it JSON error Occured", Toast.LENGTH_LONG).show()
}
}, Response.ErrorListener {
Toast.makeText(this, "Volley Error Occured $it", Toast.LENGTH_LONG).show()
}){
override fun getHeaders(): MutableMap<String, String> {
val headers = HashMap<String, String>()
headers["Content-type"] = "application/json"
return headers
}
}
queue.add(jsonObjectRequest)
}
【问题讨论】:
-
将“recycler”代码移到
for循环之外,即在marketList填满所有对象之前不要调用MarketRecyclerAdapter(...)。
标签: java android json api kotlin