JSONArray в JSONArray с вектором в Java - PullRequest
0 голосов
/ 09 декабря 2018

Как поместить внутренние данные JSONArray в вектор?Программа вылетает только тогда, когда я хочу поместить данные в вектор, когда я просто печатаю данные, все работает нормально.Зачем?Как это исправить?Когда я запускаю программу с вектором:

0
Budapest
Szolnok
time: 0 2018.10.21. 11:20 2018.10.21. 13:25
Exception in thread "main" java.lang.NullPointerException
    at Routes.addTime(Routes.java:20)
    at JSONReader.main(JSONReader.java:30)

И когда я запускаю белый без vecor (просто выведите на консоль хороший результат):

0
Будапешт
Сольнок
время: 0 2018.10.21.11:20 2018.10.21.13: 25
время: 1 2018.10.21.13:20 2018.10.21.15: 25
1
Веспрем
Будапешт
время: 0 2018.10.30.09:35 2018.10.30.11: 02
2
Веспрем
Дьёр
время: 0 2018.11.10.15:46 2018.11.10.16: 50
1
Дьёр
Сомбатхей
время: 0 2018.11.05.13:10 2018.11.05.14:50

JSONReader.java

import org.json.JSONArray;
import org.json.JSONObject;

public class JSONReader {
static String JSON_STRING = "{\"routes\": [{\"id\": 0,\"from\": \"Budapest\",\"to\": \"Szolnok\",\"times\": [{ \"id\": 0, \"start\": \"2018.10.21. 11:20\", \"arrive\": \"2018.10.21. 13:25\" },{ \"id\": 1, \"start\": \"2018.10.21. 13:20\", \"arrive\": \"2018.10.21. 15:25\" }]}, {\"id\": 1,\"from\": \"Veszprem\",\"to\": \"Budapest\",\"times\": [{ \"id\": 0, \"start\": \"2018.10.30. 09:35\", \"arrive\": \"2018.10.30. 11:02\" }]}, {\"id\": 2,\"from\": \"Veszprem\",\"to\": \"Gyor\",\"times\": [{ \"id\": 0, \"start\": \"2018.11.10. 15:46\", \"arrive\": \"2018.11.10. 16:50\" }],}, {\"id\": 1,\"from\": \"Gyor\",\"to\": \"Szombathely\",\"times\": [{ \"id\": 0, \"start\": \"2018.11.05. 13:10\", \"arrive\": \"2018.11.05. 14:50\" }],}]}";

public static void main(String[] args) {

    //RoutSystem routsystem = new RoutSystem();
    JSONObject object = new JSONObject(JSON_STRING);
    JSONArray routes = object.getJSONArray("routes");

    for (int y = 0; y < routes.length(); y++) {
        JSONObject route = routes.getJSONObject(y);
        int id = route.getInt("id");
        String from = route.getString("from");
        String to = route.getString("to");
        JSONArray time = route.getJSONArray("times");
        System.out.println(id);
        System.out.println(from);
        System.out.println(to);
        Routes rout = new Routes(id, from, to);
        for (int z = 0; z < time.length(); z++) {
            JSONObject valami = time.getJSONObject(z);
            int id1 = valami.getInt("id");
            String start = valami.getString("start");
            String arrive = valami.getString("arrive");
            System.out.println("time: " + id1 + " " + start + " " + arrive);
            rout.addTime(id1, start, arrive);
        }
        //rout.printRout();
        //routsystem.addRoute(rout);
    }

}
}

Routes.java

import java.util.Vector;

public class Routes {

int id;
String from, to;
Vector<Times> times;

public Routes(int _id, String _from, String _to) {
    id = _id;
    from = _from;
    to= _to;
}

public void addTime(int id, String start, String arrive) {
    Times time = new Times();
    time.setid(id);
    time.setstart(start);
    time.setarrive(arrive);
    times.add(time);
}

public void printRout() {
    System.out.println(id);
    System.out.println(from);
    System.out.println(to);
    for (Times t : times) {
        System.out.println(t.getid() + " " + t.getstart() + " " + t.getarrive());
    }
}

}

Times.java

public class Times {
int id;
String start, arrive;


public Times() {
    id = 0;
    start = "";
    arrive = "";
}

public int getid() {
    return id;
}

public String getstart() {
    return start;
}

public String getarrive() {
    return arrive;
}

public void setid(int i) {
    id = i;
}

public void setstart(String s) {
    start = s;
}

public void setarrive(String a) {
    arrive = a;
}
}

1 Ответ

0 голосов
/ 09 декабря 2018

Проблема в том, что вы не инициализируете свой вектор перед добавлением в него объектов.Вот почему вы получаете исключение nullpointer.Вы должны посмотреть, что такое nullpointer.

что такое исключение nullpointer и как мне его исправить.

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