java - Separate JSON string into variable in android -


i'm trying divide json string individual strings of each contact item such emailaddress & phone number. i'm using system.out.print see if information being stored in strings should. nothing showing in system.out , happens see below in logcat.

json string:

{"items":[{"description":"payment confirmed","emailaddress":"abc@aqw.com","id":"fri aug 30 17:20:35 edt 2013","namefirst":"bill","namelast":"sanders","phone":"5555555555","state":"ks","streetaddress":"123 rick dr","zipcode":"44444","kind":"contactinfoendpoint#resourcesitem"},{"description":"payment confirmed","emailaddress":"qwe@msn.com","id":"fri aug 30 17:21:37 edt 2013","namefirst":"frank","namelast":"lloyd","phone":"5554567896","state":"ky","streetaddress":"999 rock st","zipcode":"44555","kind":"contactinfoendpoint#resourcesitem"}],"kind":"contactinfoendpoint#resources","etag":"\"nidxi3t89orrapgjahggqje1z0w/z0w4p01mjhc5cngcot3kb_1xo8e\""} 

here logcat.

09-03 14:51:18.755: w/system.err(27991): org.json.jsonexception: no value emailaddress 09-03 14:51:18.755: w/system.err(27991):    @ org.json.jsonobject.get(jsonobject.java:354) 09-03 14:51:18.755: w/system.err(27991):    @ org.json.jsonobject.getstring(jsonobject.java:510) 09-03 14:51:18.755: w/system.err(27991):    @ com.indeeditis.finderactivity$endpointstask.doinbackground(finderactivity.java:112) 09-03 14:51:18.765: w/system.err(27991):    @ com.indeeditis.finderactivity$endpointstask.doinbackground(finderactivity.java:1) 09-03 14:51:18.765: w/system.err(27991):    @ android.os.asynctask$2.call(asynctask.java:287) 09-03 14:51:18.765: w/system.err(27991):    @ java.util.concurrent.futuretask.run(futuretask.java:234) 09-03 14:51:18.765: w/system.err(27991):    @ android.os.asynctask$serialexecutor$1.run(asynctask.java:230) 09-03 14:51:18.765: w/system.err(27991):    @ java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1080) 09-03 14:51:18.765: w/system.err(27991):    @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:573) 09-03 14:51:18.765: w/system.err(27991):    @ java.lang.thread.run(thread.java:856) 

my program:

public class finderactivity extends listactivity   {   private static final string tag_id = "id"; private static final string tag_firstname = "namefirst"; private static final string tag_lastname = "namelast"; private static final string tag_email = "emailaddress"; private static final string tag_address = "streetaddress"; private static final string tag_state = "state";  private static final string tag_phone = "phone"; jsonarray contacts = null;    @override public void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);     setcontentview(r.layout.main);       new endpointstask().execute(getapplicationcontext());  }  public class endpointstask extends asynctask<context, integer, long> {      public long doinbackground(context... contexts) {        contactinfoendpoint.builder endpointbuilder = new contactinfoendpoint.builder(           androidhttp.newcompatibletransport(),           new jacksonfactory(),           new httprequestinitializer() {           public void initialize(httprequest httprequest) { }           });   contactinfoendpoint endpoint = cloudendpointutils.updatebuilder(   endpointbuilder).build();    try {      string apples = endpoint.listcontactinfo().execute().tostring();      jsonobject jobject = new jsonobject(apples);      jsonarray jsonarr = jobject.getjsonarray("items");       for(int =0 ; i<jsonarr.length() ;i++ ){          jsonobject jsonobj1 = jsonarr.getjsonobject(i);                       // storing each json item in variable                     string id = jsonobj1.getstring(tag_id);                     string namefirst1 = jsonobj1.getstring(tag_firstname);                     string namelast1 = jsonobj1.getstring(tag_lastname);                     string emailaddress1 = jsonobj1.getstring(tag_email);                     string streetaddress1 = jsonobj1.getstring(tag_address);                     string phone1 = jsonobj1.getstring(tag_phone);                      //test see if made string                      system.out.print(namefirst1);                     system.out.print(namelast1);        }      } catch (ioexception e) {     e.printstacktrace();   } catch (jsonexception e) {     // todo auto-generated catch block     e.printstacktrace(); }       return (long) 0;     }       } 

}

your tag in logcat. before loop verify contents of string.

09-03 15:13:57.690: d/your_tag(30179): [{"streetaddress":"123 rick dr","id":"fri aug 30 17:20:35 edt 2013","phone":"5555555555","namelast":"sanders","namefirst":"bill","description":"payment confirmed","zipcode":"44444","state":"ks","emailaddress":"abc@aqw.com","kind":"contactinfoendpoint#resourcesitem"},{"streetaddress":"999 rock st","id":"fri aug 30 17:21:37 edt 2013","phone":"5554567896","namelast":"lloyd","namefirst":"frank","description":"payment confirmed","zipcode":"44555","state":"ky","emailaddress":"qwe@msn.com","kind":"contactinfoendpoint#resourcesitem"},{"id":"sat aug 31 12:46:33 edt 2013","namelast":"j","namefirst":"j","kind":"contactinfoendpoint#resourcesitem","description":"payment confirmed"},{"id":"sat aug 31 14:33:03 edt 2013","emailaddress":"c","namelast":"b","namefirst":"a","kind":"contactinfoendpoint#resourcesitem","description":"payment confirmed"}] 

ok have removed later entries datastore. receive no errors now, don't of system outs im looking for.

as can see don't have emailaddress defined third object. if not sure have every attribute in jsons have check key before.

if (jsonobject.has(tag)) {     jsonobject.getstring(tag_id); } 

some time make utils make code easier, example:

public static string getstring(jsonobject object, string tag, string defstring) {     if (object.has(tag))         return object.getstring(tag);     else         return defstring; } 

so code this:

string namefirst1 = utils.getstring(jsonobj1, tag_id, ""); // firstname default. string namelast1 = utils.getstring(jsonobj1, tag_id, null); // maybe null?? 

your json formatted, use link see formatted (it helps me lot)

[    {       "streetaddress":"123 rick dr",       "id":"fri aug 30 17:20:35 edt 2013",       "phone":"5555555555",       "namelast":"sanders",       "namefirst":"bill",       "description":"payment confirmed",       "zipcode":"44444",       "state":"ks",       "emailaddress":"abc@aqw.com",       "kind":"contactinfoendpoint#resourcesitem"    },    {       "streetaddress":"999 rock st",       "id":"fri aug 30 17:21:37 edt 2013",       "phone":"5554567896",       "namelast":"lloyd",       "namefirst":"frank",       "description":"payment confirmed",       "zipcode":"44555",       "state":"ky",       "emailaddress":"qwe@msn.com",       "kind":"contactinfoendpoint#resourcesitem"    },    {       "id":"sat aug 31 12:46:33 edt 2013",       "namelast":"j",       "namefirst":"j",       "kind":"contactinfoendpoint#resourcesitem",       "description":"payment confirmed"    },    {       "id":"sat aug 31 14:33:03 edt 2013",       "emailaddress":"c",       "namelast":"b",       "namefirst":"a",       "kind":"contactinfoendpoint#resourcesitem",       "description":"payment confirmed"    } ] 

Comments

Popular posts from this blog

html - How to style widget with post count different than without post count -

How to remove text and logo OR add Overflow on Android ActionBar using AppCompat on API 8? -

javascript - storing input from prompt in array and displaying the array -