最近在做android项目,用到了Gson解析,总结一下放在这里,方便以后使用
服务器端代码:
package com.sdufe.domain;
/**
* @author lili.guo
*
* 2014-6-10下午2:20:31
*/
public class People {
private int id;
private String username;
private String address;
/**
* 无参构造函数
*/
public People() {
// TODO Auto-generated constructor stub
}
public People(int id, String username, String address) {
this.id = id;
this.username = username;
this.address = address;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
package com.sdufe.tools;
import com.google.gson.Gson;
/**
* @author lili.guo
*
* 2014-6-10下午2:39:47
*/
public class JsonTools {
/**
* 将普通的字符串转化为json
* @param value
* @return
*/
public static String CreateJsonStringbyGson(String value){
Gson gson=new Gson();
String json=gson.toJson(value);
return json;
}
}
package com.sdufe.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.sdufe.domain.People;
/**
* @author lili.guo
*
* 2014-6-10下午2:27:36
*/
public class JsonService {
public People getPeople(){
People people=new People(1001, "Thea", "beijing");
return people;
}
public List<People> getList(){
List<People> list=new ArrayList<People>();
list.add(new People(1001, "Thea", "beijing"));
list.add(new People(1001, "Thea", "beijing"));
list.add(new People(1001, "Thea", "beijing"));
return list;
}
public List<String> getString(){
List<String> list=new ArrayList<String>();
list.add("beijing");
list.add("shanghai");
return list;
}
public List<Map<String, Object>> getListMap(){
List<Map<String, Object>> list=new ArrayList<Map<String,Object>>();
Map<String, Object> map1=new HashMap<String, Object>();
map1.put("id", 1001);
map1.put("username", "Thea");
map1.put("address", "beijing");
list.add(map1);
Map<String, Object> map2=new HashMap<String, Object>();
map2.put("id", 1001);
map2.put("username", "Thea");
map2.put("address", "beijing");
list.add(map2);
return list;
}
}
其中jsonService中转化的数据类型比较多,差不多经常用到的几种都放在这里了
客户端代码:
package com.sdufe.tools;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.sdufe.domain.People;
/**
* @author lili.guo
*
* 2014-6-10下午2:53:16
*/
public class GsonTool {
public static People getPeople(String jsonString) {
Gson gson = new Gson();
People people = gson.fromJson(jsonString, People.class);
return people;
}
public static List<People> getList(String jsonString) {
Gson gson = new Gson();
List<People> list=new ArrayList<People>();
list=gson.fromJson(jsonString, new TypeToken<List<People>>() {
}.getType());
return list;
}
public static List<String> getString(String json){
Gson gson=new Gson();
List<String> list=new ArrayList<String>();
list=gson.fromJson(json, new TypeToken<List<String>>() {
}.getType());
return list;
}
public List<Map<String, Object>> getListMap(String json){
List<Map<String, Object>> list=new ArrayList<Map<String,Object>>();
Gson gson=new Gson();
list=gson.fromJson(json, new TypeToken<List<Map<String,Object>>>() {
}.getType());
return list;
}
}
稍微解释一下
服务器端负责把String类型的字符串转化成json类型,而客户端则负责把json类型解析成普通的String类型