android - Get value from gson with index -


i trying parse huge json using gson library , main idea 1 value each object , save string. this json file using. , code using parse json:

public class postsactivity extends activity {      private static final string tag = "postsactivity";     private list<post> posts;     public textview textss;     public int i;        @override     protected void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         setcontentview(r.layout.activity_posts);          textss = (textview)findviewbyid(r.id.texts);         postfetcher fetcher = new postfetcher();         fetcher.execute();      }      @override     public boolean oncreateoptionsmenu(menu menu) {         // inflate menu; adds items action bar if present.         getmenuinflater().inflate(r.menu.posts, menu);         return true;     }      private void handlepostslist(list<post> posts) {         this.posts = posts;          runonuithread(new runnable() {             @override             public void run() {                 for(post post : postsactivity.this.posts) {                     toast.maketext(postsactivity.this, post.title + " " + i, toast.length_short).show();                   }             }         });     }      private void failedloadingposts() {         runonuithread(new runnable() {             @override             public void run() {                  toast.maketext(postsactivity.this, "failed load posts. have @ logcat. bls bls bls " , toast.length_short).show();             }         });     }       private class postfetcher extends asynctask<void, void, string> {         private static final string tag = "postfetcher";         public static final string server_url = "http://kylewbanks.com/rest/posts";          @override         protected string doinbackground(void... params) {             try {                 //create http client                 httpclient client = new defaulthttpclient();                 httppost post = new httppost(server_url);                  //perform request , check status code                 httpresponse response = client.execute(post);                 statusline statusline = response.getstatusline();                 if(statusline.getstatuscode() == 200) {                     httpentity entity = response.getentity();                     inputstream content = entity.getcontent();                      try {                          ( = 0; < 4; i++) {                             //read server response , attempt parse json                             reader reader = new inputstreamreader(content);                              gsonbuilder gsonbuilder = new gsonbuilder();                              gsonbuilder.setdateformat("m/d/yy hh:mm a");                             gson gson = gsonbuilder.create();                             list<post> posts = arrays.aslist(gson.fromjson(reader, post[].class));                              content.close();                             handlepostslist(posts);                         }                      } catch (exception ex) {                         log.e(tag, "failed parse json due to: " + ex);                          failedloadingposts();                     }                 } else {                     log.e(tag, "server responded status code: " + statusline.getstatuscode());                      failedloadingposts();                 }             } catch(exception ex) {                 log.e(tag, "failed send http post request due to: " + ex);                  failedloadingposts();             }             return null;         }      } } 

i still learning , understand values saved in 1 big list , later these values displayed in toast. trying save value in string json this:

jsonarray arr = new jsonarray(result); jsonobject jobj = arr.getjsonobject(0); string date = jobj.getstring("neededstring"); 

how can achieve using gson library?

here's i've tried want.

//read server response , attempt parse json reader reader = new inputstreamreader(content);  gsonbuilder gsonbuilder = new gsonbuilder();  gsonbuilder.setdateformat("m/d/yy hh:mm a"); gson gson = gsonbuilder.create(); //list<post> posts = arrays.aslist(gson.fromjson(reader, post[].class)); jsonarray posts = new jsonparser().parse(reader).getasjsonarray();  // first element @ index 0 post post1 = gson.fromjson(posts.get(0).getasjsonobject(), post.class); log.d(tag, "post1 .. " + post1.gettitle()); content.close(); //handlepostslist(posts); 

first of all, create gson jsonarray. , assign creating new jsonparser parses reader jsonarray.

and can extract first element of posts getting element @ index 0, , deserializes respective object.

i've used set/get post object title post1.gettitle().

the log says

post1 .. disabling google analytics in development using javascript


Comments