У меня есть этот кодекс, который тратит url, но как я делаю, чтобы добывать данные json, Вы вручаете меня, специально я хочу достать main и description array weather
weather": [
{ "id": 800, "main": "Clear", "description": "cielo claro", "icon": "01d" }
]
и это кодекс, который тратит url
public class a {
private static String readAll(Reader rd) throws IOException {
StringBuilder sb = new StringBuilder();
int cp;
while ((cp = rd.read()) != -1) {
sb.append((char) cp);
}
return sb.toString();
}
public static JSONObject readJsonFromUrl(String url) throws IOException, JSONException {
InputStream is = new URL(url).openStream();
try {
BufferedReader rd = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-8")));
String jsonText = readAll(rd);
JSONObject json = new JSONObject(jsonText);
return json;
} finally {
is.close();
}
}
public static void main(String[] args) throws IOException, JSONException {
JSONObject json = readJsonFromUrl("LA URL DE OPENWEATHER");
System.out.println(json.toString());
}
}
Загрузи этот книжный магазин JSON-Java
La ты загружаешься кликая в boundle, или если ты используешь maven, скопируй код, который он появляется внизу. AГ±ade книжный магазин в твой проект и используй следующего cГіdigo:
String cadenaJson = "[{\"id\": 800, \"main\": \"Clear\", \"description\": \"cielo claro\", \"icon\": \"01d\"}]";
// El json claramente es un Array
JSONArray arr = new JSONArray(cadenaJson);
JSONObject objetoJson = arr.getJSONObject(0);
// Y ahora podemos acceder
String main = objetoJson.getString("main");
System.out.println(main);
Проблема была, в котором твой полученный JSON - в действительности Array, из-за чего ты должен соглашаться на положение сначала.
Надеялся, что он подает тебе пример ;)