Thursday, 15 May 2014

android - How to parse second level JSON Array -



android - How to parse second level JSON Array -

i next this tutorial parse json data

and know how parse simple json single json array, have parse multilevel json

like able parse 1st level list don't know how parse sec level, see json format below:

{ "batches": [ { "title": "beginners", "students": [ { "name": "jack" }, { "name": "lam" }, { "name": "temp" } ] }, { "title": "intermediate", "students": [ { "name": "ashta" } ] }, { "title": "advance", "students": [ { "name": "kamak" }, { "name": "basi" } ] } ] }

my first level json parsing result this:

beginners

intermediate

advance

now want whenever user tap on beginners need list records:

jack

lam

temp

mainactivity.java:-

public class mainactivity extends actionbaractivity { progressdialog progressdialog; jsonobject jsonobject; jsonarray jsonarraybatches, jsonarraystudents; arraylist<hashmap<string, string>> arraylist; listview listview; listviewadapter listviewadapter; static string node_batch_title = "title"; static string node_student_name = "name"; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.listview_main); // execute asynctask new jsondata().execute(); } private class jsondata extends asynctask<void, void, void> { protected void onpreexecute() { super.onpreexecute(); progressdialog = new progressdialog(mainactivity.this); progressdialog.seticon(r.drawable.ic_launcher); progressdialog.settitle("json parsing"); progressdialog.setmessage("loading..."); progressdialog.show(); log.d("onpreexecute()::", "onpreexecute()"); } @override protected void doinbackground(void... arg0) { // todo auto-generated method stub log.d("doinbackground()::", "doinbackground()"); // initializing arraylist arraylist = new arraylist<hashmap<string, string>>(); jsonobject = jsonparsing.getjsonfromurl("url"); seek { // locate array name in json jsonarraybatches = jsonobject.getjsonarray("batches"); // using loop length of json array (int b = 0; b < jsonarraybatches.length(); b++) { // each , every json object array jsonobject = jsonarraybatches.getjsonobject(b); // name,value pair hashmap<string, string> hashmapbatches = new hashmap<string, string>(); // set info hashmap & convert json object string hashmapbatches.put("title", jsonobject.getstring("title")); // node name = name (in json) // add together hashmap arraylist arraylist.add(hashmapbatches); } // locate array name in json jsonarraystudents = jsonobject.getjsonarray("students"); // using loop length of json array (int b = 0; b < jsonarraybatches.length(); b++) { // each , every json object array jsonobject = jsonarraybatches.getjsonobject(b); // name,value pair hashmap<string, string> hashmapbatches = new hashmap<string, string>(); // set info hashmap & convert json object string hashmapbatches.put("name", jsonobject.getstring("name")); // node name = name (in json) } } grab (jsonexception e) { // todo auto-generated grab block e.printstacktrace(); } homecoming null; } protected void onpostexecute(void args) { // reference listview listview = (listview) findviewbyid(r.id.listview); // set arraylist adapter listviewadapter = new listviewadapter(mainactivity.this, arraylist); // set adapter listview listview.setadapter(listviewadapter); progressdialog.dismiss(); log.d("onpostexecute()::", "onpostexecute()"); listview.setonitemclicklistener(new onitemclicklistener() { @override public void onitemclick(adapterview<?> arg0, view arg1, int position, long arg3) { // todo auto-generated method stub toast.maketext(mainactivity.this, arraylist.get(position).get(mainactivity.node_student_name), toast.length_short).show(); intent intent = new intent(mainactivity.this, secondactivity.class); startactivity(intent); } }); } } }

secondactivity.java:-

public class secondactivity extends actionbaractivity { @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.listview_main); } }

hello can check here , follow solution , proper way handling json..

1.mainactivity

2.secondactivity

3.firstlistadapter

4.secondlistadapter

you can understand total json parsing here..

android json parsing

No comments:

Post a Comment