Android中使用Gson解析JSON数据的两种方法
方法一:通过获取JsonReader对象解析JSON数据:
StringjsonData="[{\"username\":\"arthinking\",\"userId\":001},{\"username\":\"Jason\",\"userId\":002}]";try{JsonReaderreader=newJsonReader(newStringReader(jsonData));reader.beginArray();while(reader.hasNext()){reader.beginObject();while(reader.hasNext()){StringtagName=reader.nextName();if(tagName.equals("username")){System.out.println(reader.nextString());}elseif(tagName.equals("userId")){System.out.println(reader.nextString());}}reader.endObject();}reader.endArray();}catch(Exceptione){e.printStackTrace();}
方法二:通过把JSON数据映射成一个对象,使用Gson对象的fromJson()方法获取一个对象数组进行操作:
创建JSON数据对应的一个POJO对象User.java:
publicclassUser{privateStringusername;privateintuserId;publicStringgetUsername(){returnusername;}publicvoidsetUsername(Stringusername){this.username=username;}publicintgetUserId(){returnuserId;}publicvoidsetUserId(intuserId){this.userId=userId;}}
使用Gson对象获取User对象数据进行相应的操作:
ypelistType=newTypeToken<LinkedList<User>>(){}.getType();Gsongson=newGson();LinkedList<User>users=gson.fromJson(jsonData,listType);for(Iteratoriterator=users.iterator();iterator.hasNext();){Useruser=(User)iterator.next();System.out.println(user.getUsername());System.out.println(user.getUserId());}
如果要处理的JSON字符串只包含一个JSON对象,则可以直接使用fromJson获取一个User对象:
tringjsonData="{\"username\":\"arthinking\",\"userId\":001}";Gsongson=newGson();Useruser=gson.fromJson(jsonData,User.class);System.out.println(user.getUsername());System.out.println(user.getUserId());
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。