Я пытаюсь проанализировать JSON из веб-API в первый раз, и я получаю исключение NullPointerException.Я скачал файл json .jar и добавил его как внешнюю библиотеку, затем добавил JSON в StringBuffer и просто посмотрел, работает ли он, - добавил System.Out.println.Затем я сделал JSON Object, но не был уверен в аргументе, должен ли это быть объект stringBuffer?В конце я попытался создать массив JSON и найти в нем строку «Država», но затем я получил это исключение NullPointerException.Где я не прав?
edit: я еще не использую Maven.
мой код:
try {
double responseCode = conn.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
System.out.println("Broj tečajnice = "+ responseCode);
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
System.out.println(inputLine);
}
JSONObject obj = new JSONObject(inputLine);
JSONArray arr = obj.getJSONArray("Država");
for (int i = 0; i < arr.length(); i++)
{
String drzava = arr.getJSONObject(i).getString("Država");
System.out.println(drzava);
}
in.close();
}
catch (IOException | JSONException e) {
e.printStackTrace();
}
И JSON с веб-сайта:
[{"Broj tečajnice":"188",
"Datum primjene":"30.09.2018",
"Država":"Australija",
"Šifra valute":"036",
"Valuta":"AUD",
"Jedinica":1,
"Kupovni za devize":"4,605078",
"Srednji za devize":"4,618935",
"Prodajni za devize":"4,632792"},
{"Broj tečajnice":"188",
"Datum primjene":"30.09.2018",
"Država":"Kanada",
"Šifra valute":"124",
"Valuta":"CAD",
"Jedinica":1,
"Kupovni za devize":"4,903440",
"Srednji za devize":"4,918195",
"Prodajni za devize":"4,932950"}
...etc...]
Исключение:
java.lang.NullPointerException
at java.io.StringReader.<init>(StringReader.java:50)
at org.json.JSONTokener.<init>(JSONTokener.java:66)
at org.json.JSONObject.<init>(JSONObject.java:420)
at pretvaracValuta.PretvaracController.connection(PretvaracController.java:49)
at pretvaracValuta.PretvaracController.initialize(PretvaracController.java:24)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2548)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2441)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3214)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3175)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3148)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3124)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3104)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:3097)
at pretvaracValuta.Main.start(Main.java:14)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$106(LauncherImpl.java:863)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$119(PlatformImpl.java:326)
at com.sun.javafx.application.PlatformImpl.lambda$null$117(PlatformImpl.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$118(PlatformImpl.java:294)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
at com.sun.glass.ui.gtk.GtkApplication.lambda$null$450(GtkApplication.java:139)
at java.lang.Thread.run(Thread.java:748)