从API读取JSON数据

时间:2019-04-18 17:52:22

标签: java json rest

如果这个问题太宽泛,请原谅我,如果是,请对我大喊。

我正在从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,因此我不清楚如何进行此操作。

1 个答案:

答案 0 :(得分:1)

首先,您应该使用JSONArray而不是JSONObject,因为它是从API响应接收到的对象数组。

现在迭代此array并获取实际上以JSONObject(键值对)形式接收的每个HashMap

现在,您可以通过访问它们的键来获取JSONObject的每个元素。