Json методы, как получить информацию из deviations

210
11 июня 2018, 17:20

у меня есть задание, в одной части из которого я должен получить сообщение с сайта о возможной задержке поезда.

String adress2 = "http://api.sl.se/api2/deviations.json?key=d3fa46ed7ddf4af7a5ef18fd353f0088&transportMode=metro&lineNumber=10&siteId=9161&fromDate=2018-05-24&toDate=2018-05-25";
    try {
        URL v = new URL(adress2);
        URLConnection connection = v.openConnection();
        HttpURLConnection httpConnection = (HttpURLConnection)connection;
        int code = httpConnection.getResponseCode();
        if(code != HttpURLConnection.HTTP_OK){
            throw new MalformedURLException();
        }
        InputStream instream = connection.getInputStream();
        Scanner in = new Scanner(instream);
        while(in.hasNextLine()){
            String input = in.nextLine();
            JSONObject result = new JSONObject(input);
            //Проблема на строке ниже
            JSONObject response = result.getJSONObject("ResponseData");
            String message = response.getString("Details");

        }
    } catch (MalformedURLException ex) {
        System.out.println("Felaktig adress");
    } catch (IOException ex) {
        System.out.println("Filen kunde inte läsas in");
    } 

ResponseData имеет тип deviations, Details имеет тип стринг. Я получаю ошибку:

Exception in thread "main" org.json.JSONException: JSONObject["ResponseData"] is not a JSONObject.

Как правильно решить эту проблему?

Answer 1
if (!result.isNull("ResponseData"))
    JSONObject response = result.getJSONObject("ResponseData");
else
    System.err.println("Error: " + result.getString("Message"));
READ ALSO
Servlet отправка неоднородных данных

Servlet отправка неоднородных данных

Как отправить и картинки и разметку? Пихаю в OutputStream картинку, выставляю setContentType("imeg/jpeg")Все норм, но таких картинок я хочу отправить не одну!...

186
Android Room сохранение вложенных Entity

Android Room сохранение вложенных Entity

Недавно начал разбираться с android разработкойНикак не могу понять как с помощью Room сохранить в БД вот такой объект:

176
Вложенные циклы for БЕЗ скобок

Вложенные циклы for БЕЗ скобок

В этом случае программа выйдет из обоих циклов или только из внутреннего?

167
Обнаружить StackOverflowError в других потоках

Обнаружить StackOverflowError в других потоках

Я делаю интерпретатор языка PrologЯзык основан на рекурсии, и неправильно написанные программы часто приводят к переполнению стека

162