使用 JSON 从 API 中提取特定值的问题
Posted
技术标签:
【中文标题】使用 JSON 从 API 中提取特定值的问题【英文标题】:Problem extracting specific values from API using JSON 【发布时间】:2022-01-02 01:29:39 【问题描述】:我在从 API 获取数据时遇到问题,想知道是否有人可以提供帮助。我基本上“low_14h”的值有许多不同货币的响应。我只想能够提取“usd”中的值并将其放入我的文本框“dailylowtext”中。我可以摆弄并从'low_24h'中获取一些值,但我正在努力从'usd'中获取值。希望这对我想要实现的目标有意义。
我当前的代码是:
RequestQueue 队列 = Volley.newRequestQueue(this); 字符串 url = "https://api.coingecko.com/api/v3/coins/mina-protocol";
JsonObjectRequest jsObjRequest = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>()
@Override
public void onResponse(JSONObject response)
try
JSONObject jObj=new JSONObject(response.toString());
String usd = jObj.getJSONObject("response").getJSONObject("low_24h").getString("usd").toString();
catch (JSONException e)
e.printStackTrace();
// TODO Auto-generated method stub
dailylowtext.setText(response.toString());
System.out.println("Response => "+response.toString());
, new Response.ErrorListener()
@Override
public void onErrorResponse(VolleyError error)
// TODO Auto-generated method stub
);
queue.add(jsObjRequest);
【问题讨论】:
JSON 实际上是什么样子的?举个例子 嗨。谢谢你的文章。问题已得到解决。保重。 【参考方案1】:我想你忘记了“market_data”。在 JSON 文件中,market_data 是 low_24 的父级。
您的 JSON 数据中没有“响应”节点,请尝试使用 market_data 而不是响应。
String usd = jObj.getJSONObject("market_data").getJSONObject("low_24h").getString("usd").toString();
您还可以使用 gson 或 moshi 等库来帮助您处理 JSON 数据。
【讨论】:
当我将其更改为反映时,这立即起作用。太感谢了!我怎么会错过“market_data”!?现在觉得好傻。非常感谢您的帮助,保重并度过一个美好的圣诞节。以上是关于使用 JSON 从 API 中提取特定值的问题的主要内容,如果未能解决你的问题,请参考以下文章