Google Gson
来源:互联网 发布:网络销售教学 编辑:程序博客网 时间:2024/05/17 06:17
Gson网址http://code.google.com/p/google-gson/
1.简单的处理list和map
- Gson gson = new Gson();
- List testList = new ArrayList();
- testList.add("first");
- testList.add("second");
- String listToJson = gson.toJson(testList);
- System.out.println(listToJson);
- //prints ["first","second"]
- Map testMap = new HashMap();
- testMap.put("id", "id.first");
- testMap.put("name","name.second");
- String mapToJson = gson.toJson(testMap);
- System.out.println(mapToJson);
- //prints {"id":"id.first","name":"name.second"}
2.处理带泛型的集合
- List<TestBean> testBeanList = new ArrayList<TestBean>();
- TestBean testBean = new TestBean();
- testBean.setId("id");
- testBean.setName("name");
- testBeanList.add(testBean);
- java.lang.reflect.Type type = new com.google.gson.reflect.TypeToken<List<TestBean>>() {
- }.getType();
- String beanListToJson = gson.toJson(testBeanList,type);
- System.out.println(beanListToJson);
- //prints [{"id":"id","name":"name"}]
- List<TestBean> testBeanListFromJson = gson.fromJson(beanListToJson, type);
- System.out.println(testBeanListFromJson);
- //prints [TestBean@1ea5671[id=id,name=name,birthday=<null>]]
map等其他集合类型同上
3.Date类型转化
先写工具类
- import java.lang.reflect.Type;
- import com.google.gson.JsonDeserializationContext;
- import com.google.gson.JsonDeserializer;
- import com.google.gson.JsonElement;
- import com.google.gson.JsonParseException;
- public class UtilDateDeserializer implements JsonDeserializer<java.util.Date> {
- @Override
- public java.util.Date deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context)
- throws JsonParseException {
- return new java.util.Date(json.getAsJsonPrimitive().getAsLong());
- }
- }
- import java.lang.reflect.Type;
- import com.google.gson.JsonElement;
- import com.google.gson.JsonPrimitive;
- import com.google.gson.JsonSerializationContext;
- import com.google.gson.JsonSerializer;
- public class UtilDateSerializer implements JsonSerializer<java.util.Date> {
- @Override
- public JsonElement serialize(java.util.Date src, Type typeOfSrc,
- JsonSerializationContext context) {
- return new JsonPrimitive(src.getTime());
- }
- }
- /**
- * 序列化方法
- * @param bean
- * @param type
- * @return
- */
- public static String bean2json(Object bean, Type type) {
- Gson gson = new GsonBuilder().registerTypeAdapter(java.util.Date.class, new UtilDateSerializer())
- .setDateFormat(DateFormat.LONG).create();
- return gson.toJson(bean);
- }
- /**
- * 反序列化方法
- * @param json
- * @param type
- * @return
- */
- public static <T> T json2bean(String json, Type type) {
- Gson gson = new GsonBuilder().registerTypeAdapter(java.util.Date.class, new UtilDateDeserializer())
- .setDateFormat(DateFormat.LONG).create();
- return gson.fromJson(json, type);
- }
现在开始测试
- List<TestBean> testBeanList = new ArrayList<TestBean>();
- TestBean testBean = new TestBean();
- testBean.setId("id");
- testBean.setName("name");
- testBean.setBirthday(new java.util.Date());
- testBeanList.add(testBean);
- java.lang.reflect.Type type = new com.google.gson.reflect.TypeToken<List<TestBean>>() {
- }.getType();
- String beanListToJson = bean2json(testBeanList, type);
- System.out.println("beanListToJson:" + beanListToJson);
- //prints [{"id":"id","name":"name","birthday":1256531559390}]
- List<TestBean> testBeanListFromJson = json2bean(beanListToJson, type);
- System.out.println(testBeanListFromJson);
- //prints [TestBean@77a7f9[id=id,name=name,birthday=Mon Oct 26 12:39:05 CST 2009]]
后记:对于java.sql.Date的转化同上类似,写两个类用于其序列化和反序列化即可SQLDateDeserializer implements JsonDeserializer<java.sql.Date>
SQLDateSerializer implements JsonSerializer<java.sql.Date>
对于GsonBuilder详见:
http://google-gson.googlecode.com/svn/tags/1.2.3/docs/javadocs/com/google/gson/GsonBuilder.html
*注:TestBean就是一个带id、name、birthday的javabean,就不在这里贴代码了
- com.google.gson.Gson;
- Google Gson
- google-gson
- google-Gson
- Google-Gson
- google Gson
- AndroidNote004.google-gson
- google gson toJson fromJson
- Gson google json使用
- Google-Gson的使用
- google Gson学习笔记
- google ——gson
- Google gson ---> 1
- Google gson ---> 2
- google gson toJson fromJson
- Google Gson 使用简介
- Google Gson应用
- Google GSON起步
- c# winform socket网络编程,点对点传输文件,socket文件传输,监听端口
- 利用HttpURLConnection对象和Internet交互
- JSTL自定义函数库的快捷配置与应用
- 《高性能网站建设指南》读书笔记--转
- 银行类动态图形密码框解决方案
- Google Gson
- 学电脑就要知道每个键的用处
- 以16进制字符串输出二进制缓冲区,带排版
- Thread setDaemon
- android自定义圆角动画按钮
- oracle的license和正版使用问题
- Vista下调式WCF的http服务的安全问题
- poj3368 Frequent values
- perl hash 按值排序 升序 降序