JSON Parsing showing NullPointerException in android -
hi have json data , i'm getting through url using method,i need show sender,receiver,message in textview,i have created jsonparser class after running app showing caused by: java.lang.nullpointerexception: attempt invoke virtual method 'org.json.jsonarray org.json.jsonobject.getjsonarray(java.lang.string)' on null object reference.how fix issue.
here have tried
private static string url = "http://130.211.99.188/api/messages"; jsonarray _items = null; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); t1 = (textview)findviewbyid(r.id.textview1); t2 = (textview)findviewbyid(r.id.textview2); t2 = (textview)findviewbyid(r.id.textview3); if (utils.isnetconnected(this)) { new parser().execute(); } else utils.showdialog(this); } class parser extends asynctask < string, string, string > { protected void onpreexecute() { super.onpreexecute(); pdialog = new progressdialog(mainactivity.this); pdialog.setmessage("please wait.."); pdialog.setindeterminate(false); pdialog.setcancelable(true); pdialog.show(); } @override protected string doinbackground(string... params) { // todo auto-generated method stub jsonparser jparser = new jsonparser(); jsonobject json = jparser.getjsondata(url); try{ _items = json.getjsonarray("_updated"); for(int i=0;i<_items.length();i++){ jsonobject object = _items.getjsonobject(i); sender = object.getstring("sender"); receiver = object.getstring("receiver"); message = object.getstring("message"); } }catch(jsonexception e){ e.printstacktrace(); } return message; }//ending doinbackground @override protected void onpostexecute(string result) { super.onpostexecute(result); pdialog.dismiss(); t1.settext(sender); t2.settext(receiver); t3.settext(message); } } } this json data
{"_items": [{"_updated": "thu, 01 jan 1970 00:00:00 gmt", "sender": "556a1233aca33b3c8158de0a", "timestamp": 1433018976, "receiver": "5569c6c5aca33b3c8158de07", "_links": {"self": {"href": "messages/556a2260aca33b3c8158de11", "title": "messages"}}, "message_created": "sat, 30 may 2015 20:49:36 gmt", "seen": false, "message": "hii", "_id": "556a2260aca33b3c8158de11", "_etag": "afa4fe57efec9abf7c5bc817a7e045a5b4467384", "_created": "thu, 01 jan 1970 00:00:00 gmt"},
this complete code, have @ data printed
import java.io.ioexception; import org.apache.http.httpresponse; import org.apache.http.client.clientprotocolexception; import org.apache.http.client.httpclient; import org.apache.http.client.methods.httpget; import org.apache.http.client.methods.httppost; import org.apache.http.impl.client.defaulthttpclient; import org.apache.http.util.entityutils; import org.json.jsonarray; import org.json.jsonexception; import org.json.jsonobject; import android.app.activity; import android.app.progressdialog; import android.os.asynctask; import android.os.bundle; public class mainactivity extends activity { progressdialog pdialog; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); new postserver().execute(); } public string postdata() throws jsonexception { // create new httpclient , post header string downloadedstring = null; httpclient httpclient = new defaulthttpclient(); // registerhttps://te // httppost httppost = new httppost("http://130.211.99.188/api/messages"); httpclient myclient = new defaulthttpclient(); // httppost myconnection = new httpget("http://130.211.99.188/api/messages"); try { // httpresponse response = myclient.execute(myconnection); httpresponse httpresponse = httpclient.execute(new httpget("http://130.211.99.188/api/messages")); downloadedstring = entityutils.tostring(httpresponse.getentity(), "utf-8"); } catch (clientprotocolexception e) { e.printstacktrace(); } catch (ioexception e) { e.printstacktrace(); } system.out.println("downloadedstring:in login:::" + downloadedstring); return downloadedstring; } public class postserver extends asynctask<void, void, void> { string jsonstring = null; @override protected void onpreexecute() { // todo auto-generated method stub super.onpreexecute(); pdialog = new progressdialog(mainactivity.this); pdialog.setcancelable(false); pdialog.setprogressstyle(progressdialog.style_spinner); pdialog.setmessage("loading.."); pdialog.show(); } @override protected void doinbackground(void... params) { // todo auto-generated method stub try { jsonstring = postdata(); } catch (jsonexception e) { // todo auto-generated catch block e.printstacktrace(); } return null; } @override protected void onpostexecute(void result) { // todo auto-generated method stub super.onpostexecute(result); try { if(pdialog!=null){ pdialog.dismiss(); } jsonobject mainobject = new jsonobject(jsonstring); jsonarray array=mainobject.getjsonarray("_items"); for(int i=0;i<array.length();i++){ system.out.println(array.getjsonobject(i).getstring("sender")); system.out.println(array.getjsonobject(i).getstring("receiver")); system.out.println(array.getjsonobject(i).getstring("message")); } } catch (exception e) { // todo: handle exception if (pdialog != null) { pdialog.dismiss(); } system.out.println(e.getmessage()); } } } } thanks
Comments
Post a Comment