Gson 是Google提供的用来将JAVA对象和JSON数据之间映射的JAVA类库。可以将一个JSON字符串转成一个JAVA对象,或者反过来。
更多关于GSON的API可以访问:http://sites.google.com/site/gson/.
package com.pcitc.loop.services.lube.utils.json;
import java.lang.reflect.Type;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
/**
* JSON转换工具类
*
*/
public class JsonUtil {
private static final Gson gson = new GsonBuilder().serializeNulls().create();
/**
* Object -> Json
*
* @param src
* @return
*/
public static String toJson(final Object src) {
return gson.toJson(src);
}
/**
* Json -> T
*
* @param json
* @param classOfT
* @return
*/
public static <T> T fromJson(final String json, Class<T> classOfT) {
return gson.fromJson(json, classOfT);
}
public static <T> T fromJson(final String json, Type typeOfT) {
return gson.fromJson(json, typeOfT);
}
}
Gson gson = new Gson();
User user = new User();
user.setName("lisi");
user.setAge(23);
// 将UserBean转换JSON字符串
String json = gson .toJSON(user);
System.out.println("简单的Bean转换为Json=" +json);
结果: 简单的Bean转换为Json={"name":"lisi","age":23}
Student stu = gson .fromJson(json);
System.out.println("Json转换为简单Bean=" +stu);
结果: Json转换为简单Bean=Student [name=lisi,age=23]
---------带泛型的List之间的转化-----------------
User user2 = new User();
user.setName("张三");
user.setAge(24);
User user3 = new User();
user.setName("哈韩");
user.setAge(25);
List<User> list = new ArrayList<User>();
list.add(user);
list.add(user2);
list.add(user3);
--------用户集合转换为json字符串-------
String json2 = gson .toJSON(list);
System.out.println("带泛型的List转换Json==" +json2);
结果: 带泛型的List转换Json==[{"name":"lisi","age":23},{"name:"张三","age":24},{"name":"哈韩","age":"25"}]
-------json转带泛型的list------
List<User> list_user = gson.fromJson(json2,new TypeToken<List<User>>() {}.getType());
for(List lu list_user){
}