Search code examples
javajsonorg.json

Why json parser program doesn't find array?


Pls help me to understand why this java program doesn't find array from json file. I didn't find similar type json file via google so pls educate me.

Error:

C:\temp\example.json
org.json.JSONException: JSONObject["result"] not found.
    at org.json.JSONObject.get(JSONObject.java:572)
    at org.json.JSONObject.getJSONArray(JSONObject.java:765)
    at JsonParsingMachine.main(JsonParsingMachine.java:17)

.java content:

import java.io.FileReader;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

import org.json.*;

public class JsonParsingMachine {

    public static void main(String[] args) {
        String tiedosto = "C:/temp/example.json";

        System.out.println(Paths.get(tiedosto));
        try {
            String contents = new String((Files.readAllBytes(Paths.get(tiedosto))));
            JSONObject o = new JSONObject(contents);
            JSONArray res = o.getJSONArray("result");

            for (int i = 0; i < res.length(); i++) {
                System.out.println();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

json file (example.json)

{
  "quoteResponse" : {
    "result" : [ {
      "language" : "en-US",
      "region" : "US",
      "quoteType" : "EQUITY",
      "quoteSourceName" : "Nasdaq Real Time Price",
      "triggerable" : true
    } ]
  }
}

Solution

  • result array is inside quoteResponse JSONObject. You need to do this instead:

    JSONObject o = new JSONObject(contents);
    JSONObject quoteResponse = o.getJSONObject("quoteResponse");
    JSONArray res = quoteResponse.getJSONArray("result");