Я сейчас пишу программу, которая извлекает информацию о погоде из api openweathermaps. Он возвращает строку JSON, например такую:
{"coord":{"lon":-95.94,"lat":41.26},"weather":[{"id":500,"main":"Rain","description":"light
rain","icon":"10n"}],"base":"stations","main": ...more json
У меня есть метод ниже, который записывает строку в. json и позволяет мне получать из нее значения.
public String readJSON() {
JSONParser parse = new JSONParser();
String ret = "";
try {
FileReader reader = new FileReader("C:\\Users\\mattm\\Desktop\\Java Libs\\JSON.json");
Object obj = parse.parse(reader);
JSONObject Jobj = (JSONObject) obj;
System.out.println(Jobj.get("weather"));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println(ret);
return ret;
}
Проблема в том, что он позволяет мне получать только внешние значения, такие как "coord"
и "weather"
. Итак, в настоящее время, поскольку у меня есть System.out.println(Jobj.get("weather"));
, он вернет [{"icon":"10n","description":"light rain","main":"Rain","id":500}]
, но я действительно хочу получить значения, которые находятся внутри него, такие как значение description
и main
. Я мало работал с JSON, поэтому может быть что-то очевидное, что мне не хватает. Есть идеи, как мне это сделать?