如果这个问题太宽泛,请原谅我,如果是,请对我大喊。
我正在从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,因此我不清楚如何进行此操作。
答案 0 :(得分:1)
首先,您应该使用JSONArray
而不是JSONObject
,因为它是从API响应接收到的对象数组。
现在迭代此array
并获取实际上以JSONObject
(键值对)形式接收的每个HashMap
。
现在,您可以通过访问它们的键来获取JSONObject
的每个元素。