user2924127
user2924127

Reputation: 6252

parse json using java (simplejson)

I need to parse json which I get from YQL but I am having trouble as I am not getting the results I need. I am using simple json (https://code.google.com/p/json-simple/wiki/DecodingExamples) and trying to follow the documentation. The problem is the example they show are very limited (I am very new to json). I want to extract everything in the array (Sy, Date, O, H, L, C, and V ). In the documentation they show how to extarct elements from an array if the json object is just as an array, but I have an array + some extra stuff on top:

{"query"
        {"count":200,"created":"2014-06-17T00:46:43Z","lang":"en-GB","results"

This is the full json object, how would I extract just the array?

{"query"
    {"count":200,"created":"2014-06-17T00:46:43Z","lang":"en-GB","results"
        {"array":[{"Sy":"Y","Date":"2010-03-10","O":"16.51","H":"16.94","L":"16.51","C":"16.79","V":"33088600"},
                  {"Sy":"Y","Date":"2010-03-09","O":"16.41","H":"16.72","L":"16.40","C":"16.53","V":"20755200"},
                  {"Sy":"Y","Date":"2010-03-08","O":"16.32","H":"16.61","L":"16.30","C":"16.52","V":"30554000"}
        ]}}}

Upvotes: 0

Views: 2325

Answers (2)

Joe Tse
Joe Tse

Reputation: 623

You have to extract the array you need piece by piece.

JSONParser parser=new JSONParser();
String s="{YOUR_JSON_STRING}";
JSONArray array=parser.parse(s).get("query") //"query"
                .get("result") // "query->result"
                .get("array"); // THE array you need

Note that you might need to use try...catch... block to deal with exceptions.

Since you are using java, I highly recommend gson, which is written by google. It can convert json to object directly, which means you don't need to get the array deep inside the json step by step. https://code.google.com/p/google-gson/

Generally speaking, you can use gson to parse json piece by piece with jsonparser or, convert the whole json to a object with gson.

Upvotes: 1

Fahriyal Afif
Fahriyal Afif

Reputation: 558

i use https://code.google.com/p/org-json-java/downloads/list

this is simple

try{
        String json = "JSON source";
        JSONObject j = new JSONObject(json);
        JSONArray arr = j.getJSONObject("query").getJSONObject("results").getJSONArray("array");
        for(int i=0; i<arr.length(); i++){
            JSONObject obj = arr.getJSONObject(i);
            String sy = obj.getString("Sy");
            String date = obj.getString("Date");
            String o = obj.getString("O");
            String h = obj.getString("H");
            String l = obj.getString("L");
            String c = obj.getString("C");
            String v = obj.getString("V");
        }
    }
    catch(JSONException e){

    }

Upvotes: 2

Related Questions