从API读取JSON数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从API读取JSON数据相关的知识,希望对你有一定的参考价值。
如果这个问题过于宽泛,请原谅我,如果是这样的话就对我大喊大叫。
我正在从java中的rest API中检索数据。然后,我希望能够在JSON数据中搜索特定的键值对。据我所知,org.json中的JSONObject是一种很好的方法。到目前为止,我有:
URL url = new URL("api string");
HttpURLConnection connnection = (HttpURLConnection)url.openConnection();
BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String input;
StringBuffer sb = new StringBuffer();
while ((input = br.readLine()) != null){
sb.append(input);
}
br.close();
returnedJSON = new JSONObject(sb.toString());
所以相当标准的获取请求代码。
首先,我不知道我是否需要JSONObject或JSONArray。我研究过的所有内容都使用JSONObjects从API写入,但我将检索以下形式的JSON:
[{x:y,a:b,foo:bar},{x:y,a:b,foo:bar},...,...]
因此,如果有意义的话,有多个JSON“条目”,我想查看整个JSON字符串,看看同一条记录中是否存在两个数据。例如:'foo'的值是'x'的值为'y'的记录的预期值吗?
我不清楚如何继续这里,因为这是我第一次正确使用JSON。
答案
首先,您应该使用JSONArray
而不是JSONObject
,因为它是您从API响应中收到的对象数组。
现在迭代这个array
并抓住每个JSONObject
,它实际上以HashMap
(键值对)的形式接收。
现在,您可以通过访问密钥来获取JSONObject
的每个元素。
以上是关于从API读取JSON数据的主要内容,如果未能解决你的问题,请参考以下文章