JSON是android与服务器端通信时需要的一种合适的数据交换格式,而Gson是google自带的一个java对象与JSON互相转换的工具包。
通过使用Gson转换器来进行序列化或者反序列化来进行android与服务器端的通信。
Gson常用的两种方法:1.toJson(),将java对象转为Json格式,对于简单对象如(数组或者是List),直接用java对象作为参数,例如:
1 Gson gson=new Gson(); 2 List<Person> persons= new ArrayList<Person>(); 3 for(int i=0;i<10;i++) 4 { 5 Person p=new Person(); 6 p.setName("name"+i); 7 p.setAge(i*5); 8 persons.add(p); 9 } 10 string str=gson.toJson(persons);
上述例子中,str的值为List对象转为的Json字符串。
2.fromJson(),将Json相关对象转为java实体。
获取Gson对象的方法有两种:1.new Gson();2.new GsonBuilder.create();通过比较而言,第2种方法功能比较强大.
public static ArrayList<EchoResponse> getParseResponse(Object result)
{ ArrayList<EchoResponse> echoResponses = new ArrayList<EchoResponse>(); GsonBuilder gsonBuilder=new GsonBuilder(); Gson gson=gsonBuilder.create(); JsonParser jsonParser =new JsonParser(); JsonElement jsonElement= jsonParser.parse(result.toString()); JsonArray jsonArray =jsonElement.getAsJsonArray(); Iterator it = jsonArray.iterator(); string json; while(it.hasNext()) { jsonElement=(JsonElement)it.next();//提取JsonElement json=jsonElement.toString();//将提取到的JsonElement转化为string EchoResponse echoResponse=gson.fromJson(json,EchoResponse.class)//将json相关对象转为java实体 echoResponses.add(echoResponse); } return echoResponses; }
以上代码清晰表达出如何利用Gson获取android与服务器端通信的数据。