0

I have this JSON Response

{
"data":{
    "last_name":"abcdef",
    "email":"[email protected]",
    "data1":{
        "data2":{
            "membership":"senior"
        },
        "Skills":[
            {
                "C":"GOOD",
                "C++":"AVERAGE",
                "JAVA":"GOOD",
                "WEB":"GOOD"
            }
        ]
    }
}
}

Now I use following method to parse it through GSON

public class ABC {
    public String last_name;
    public String email;
    .
    .
    .
}

And then I do

let us consider JSON OBJECT is == responseObject

ABC obj = (ABC)responseObject  // TypeCasting

obj.last_name gives me the result for lastname How do I implement the array and other data1 dictionary ?

1

2 Answers 2

2

you can use gson library which will make it easier to parse and it is fast also. make following class and it will convert json into your java object

public class Details {

   public MyData data;

}

public class MyData{

   public String last_name;
   public String email;
   public MyData1 data1;

}

public class MyData1 {

   public MyData2 data2;
   public List<Skill> Skills;
}

public class Mydata2{

    public string membership;
}

public class Skill {

   public String C;
   public String C++;
   public String JAVA;
   public String WEB;
}

// call following statement where you want to parse
Details details= new Gson().fromJson(json, Details.class);
Sign up to request clarification or add additional context in comments.

2 Comments

I think this should be the answer. @kashyapkbandi, you can use details.data.data1.Skills.JAVA to get the value of JAVA.
details.data.data1.Skills.get(0).JAVA // Skills is list object so you can pass index to retrieve Skill object
-1

Try this:

    try {
        JSONObject object = new JSONObject(jsonString);
        if (object.has("data")) {
            JSONObject dataObject = object.getJSONObject("data");
            String name = "", email = "", membership = "";
            if (dataObject.has("last_name")) {
                name = dataObject.getString("last_name");
            }
            if (dataObject.has("email")) {
                email = dataObject.getString("email");
            }
            ABC abc = new ABC();
            abc.setLast_name(name);
            abc.setEmail(email);
            abc.setMembership(membership);
            if (dataObject.has("data1")) {
                JSONObject data1JsonObject = dataObject.getJSONObject("data1");
                if (data1JsonObject.has("data2")) {
                    membership = data1JsonObject.getJSONObject("data2").getString("membership");
                }

                if (data1JsonObject.has("Skills")) {
                    JSONArray jsonArray = data1JsonObject.getJSONArray("Skills");
                    Skills skills = new Skills();
                    for (int i = 0; i < jsonArray.length(); i++) {
                        JSONObject skillsJsonObject = jsonArray.getJSONObject(i);
                        if (skillsJsonObject.has("C")) {
                            skills.setC(skillsJsonObject.getString("C"));
                        }
                        if (skillsJsonObject.has("C++")) {
                            skills.setcPlusPlus(skillsJsonObject.getString("C++"));
                        }
                        if (skillsJsonObject.has("JAVA")) {
                            skills.setJava(skillsJsonObject.getString("JAVA"));
                        }
                        if (skillsJsonObject.has("WEB")) {
                            skills.setWeb(skillsJsonObject.getString("WEB"));
                        }
                    }
                    abc.setSkills(skills);
                }
            }
        }
    } catch (JSONException e) {
        e.printStackTrace();
    }

ABC.java

public class ABC {
private String last_name;
private String email;
private String membership;
private Skills skills;

public String getLast_name() {
    return last_name;
}

public void setLast_name(String last_name) {
    this.last_name = last_name;
}

public String getEmail() {
    return email;
}

public void setEmail(String email) {
    this.email = email;
}

public String getMembership() {
    return membership;
}

public void setMembership(String membership) {
    this.membership = membership;
}

public Skills getSkills() {
    return skills;
}

public void setSkills(Skills skills) {
    this.skills = skills;
}
 }

Skills.java

  public class Skills {
private String c;
private String cPlusPlus;
private String java;
private String web;

public String getC() {
    return c;
}

public void setC(String c) {
    this.c = c;
}

public String getcPlusPlus() {
    return cPlusPlus;
}

public void setcPlusPlus(String cPlusPlus) {
    this.cPlusPlus = cPlusPlus;
}

public String getJava() {
    return java;
}

public void setJava(String java) {
    this.java = java;
}

public String getWeb() {
    return web;
}

public void setWeb(String web) {
    this.web = web;
}
}

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.