- 浏览: 890598 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (687)
- java (127)
- servlet (38)
- struts (16)
- spring (22)
- hibernate (40)
- javascript (58)
- jquery (18)
- tomcat (51)
- 设计模式 (6)
- EJB (13)
- jsp (3)
- oracle (29)
- RUP (2)
- ajax (3)
- java内存管理 (4)
- java线程 (12)
- socket (13)
- path (5)
- XML (10)
- swing (2)
- UML (1)
- JBPM (2)
- 开发笔记 (45)
- Note参考 (15)
- JAXB (4)
- Quartz (2)
- 乱码 (2)
- CSS (2)
- Exception (4)
- Tools (7)
- sqlserver (3)
- DWR (7)
- Struts2 (47)
- WebService (2)
- 问题解决收藏 (7)
- JBOSS (7)
- cache (10)
- easyUI (19)
- jQuery Plugin (11)
- FreeMarker (6)
- Eclipse (2)
- Compass (2)
- JPA (1)
- WebLogic (1)
- powerdesigner (1)
- mybatis (1)
最新评论
-
bugyun:
受教了,谢谢
java 正则表达式 过滤html标签 -
xiongxingxing_123:
学习了,感谢了
java 正则表达式 过滤html标签 -
wanmeinange:
那如果无状态的。对同一个任务并发控制怎么做?比如继承Quart ...
quartz中参数misfireThreshold的详解 -
fanjieshanghai:
...
XPath 元素及属性查找 -
tianhandigeng:
还是没明白
quartz中参数misfireThreshold的详解
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"}
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);
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>]]
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.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());
- }
- }
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);
- }
/** * 序列化方法 * @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]]
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,就不在这里贴代码了
发表评论
-
[转载]jquery中的一个小TIPS:鼠标移动到连接时发出声音
2012-06-05 16:24 923这个TIPS其实很简单的,实现的效果是:当鼠标移动到链接上时, ... -
gson入门示例
2011-03-07 23:29 2311项目介绍:GSON Gson是Google的一个开源项目,可以 ... -
jquery ajax中各个事件执行顺序如下
2011-03-01 11:53 2574jquery中各个事件执行顺序如下:1.ajaxStart(全 ... -
eclipse 安装插件spket
2011-01-30 11:23 1560(一下文章摘自博客园htt ... -
jQuery性能优化指南(1)
2010-11-17 20:00 956jQuery性能优化指南(1) ... -
分步提交表单解决方案
2010-10-13 16:54 1681以前只听过有这个东东,现如今自己也要做这个了,做之前也有所耳闻 ... -
ajax乱码解决
2010-09-14 23:42 1053由于ajax数据发送数据编码方式为UTF-8,所以在发送传送汉 ... -
jQuery:如何在页面和插件代码中自定义别名
2010-09-01 18:18 882众所周知,jQuery是采 ... -
插件前的分号
2010-09-01 18:13 1095在我阅读国外的开发人员编写的插件时,发现很多的插件都会在代码的 ... -
你还不会创建jQuery插件 ?
2010-09-01 18:05 1033版权声明:原创作品,允许转载,转载时请务必以超链接形 ... -
jQuery select 无法设置selected属性。未指明的错误
2010-09-01 14:16 2345来自于:http://ycq.ngwz.com/redirec ... -
jQuery-DOM对象和jQuery对象及转换
2010-08-31 11:11 831刚开始学习jQuery,可能一时会分不清楚哪些是jQuery对 ... -
JSON VS XML
2010-08-31 11:09 879·可读性 JSON和XML的可读性可谓不相上下,一边是建议的 ... -
新消息闪烁标题提示代码分享[转]
2010-08-17 16:41 888本文纯粹是贴出一些比较实用的代码出来供大家学习和使用,也算是个 ... -
jQuery:揭露jQuery的隐藏功能
2010-08-17 16:38 1065jQuery并不像他表面显示的那样,只有那些额定的方法供我们使 ... -
jQuery:通过事件委派一次绑定多种事件,以减少事件冗余
2010-08-17 16:34 982jQuery的最大特色之一就是方法连缀写法,这样的书写方式使得 ... -
jQuery:如何在页面和插件代码中自定义别名
2010-08-17 16:26 779众所周知,jQuery是采 ...
相关推荐
谷歌Gson库是Java开发中广泛使用的JSON解析和序列化工具,版本2.8.0是其一个稳定且功能丰富的版本。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。...
在Java开发中,数据交换和存储常常涉及到JSON格式。JSON(JavaScript Object Notation)是一种轻...在`hsun_gson`这个压缩包文件中,可能包含了示例源码和Gson的jar包,你可以参考这些资源进一步学习和实践Gson的使用。
- `gson-2.3.1-sources.jar`:源代码文件,开发者可以通过查看源码深入理解Gson的工作原理,对于调试和学习非常有帮助。 6. 使用示例: ```java import com.google.gson.Gson; import java.util.Date; class ...
这个“我的gson学习例子”显然是一份关于如何使用Gson进行JSON操作的学习资料。下面我们将详细探讨Gson库的使用方法和相关知识点。 首先,我们要理解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式...
谷歌的Gson库是一款强大的Java库,用于将Java对象转换为JSON(JavaScript Object Notation)格式,反之亦然。这个库使得在Java应用程序中处理JSON数据变得极其简单,尤其适用于那些需要在网络通信、存储或者显示JSON...
通过学习这些示例,开发者可以快速上手并有效地利用Gson解决实际问题。 在使用Gson时,还需要注意一些最佳实践。比如,为了避免内存泄漏,应避免创建过多的Gson实例,通常推荐使用单例模式。另外,对于敏感数据,要...
在使用教程中,你可能会学习到如何创建Gson实例,如何处理基本类型、集合和自定义类,以及如何处理复杂的JSON结构。此外,还会涉及错误处理、性能优化等方面的技巧。教程还可能包含实践示例,帮助你更好地理解和应用...
在Android开发中,数据交换和存储经常涉及到JSON格式的数据,Google Gson库是一个强大的工具,用于在Java对象...通过学习和熟练掌握Gson,开发者能够更高效地实现数据的序列化和反序列化,从而提升开发效率和代码质量。
谷歌的Gson库是Android平台上广泛使用的JSON解析和序列化库。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它允许开发者在不同系统之间以文本形式交换数据。Gson库使得Java对象和JSON数据之间的...
Gson 2.3.1 的 源代码,对深入学习gson的实现原理有很大的帮助,对gson中标签的使用的研究,有很大的帮助。
`gson-2.2.2-sources.jar`包含了Gson库的源代码,这对于开发者进行调试、学习和扩展Gson功能非常有帮助。你可以查看源码来深入理解其内部实现,甚至可以根据需要修改和优化。 在实际开发中,Gson库经常与网络请求库...
在Java编程中,枚举类型(Enum)是一种强大的工具,用于定义一组预定义的常量。...通过学习和理解这些示例,你可以更好地理解和应用这种自定义枚举处理策略,使得Gson在处理枚举时更加灵活和适应性强。
谷歌的Gson库是一个强大的Java库,用于将Java对象转换为JSON格式的字符串,反之亦然。这个"google-gson-2.2.4.jar"是...通过深入学习和实践这些示例,你可以熟练掌握如何在Java项目中有效地使用Gson库进行JSON操作。
Gson是Google提供的一款强大的Java库,用于在Java对象和JSON数据之间进行映射。它的全称为Google Gson,版本号为2.2.4。这个版本的Gson库包含了三个jar包,分别是: 1. `gson-2.2.4.jar`:这是Gson的核心库,包含了...
Gson是Google开发的一款强大的Java库,用于将Java对象转换为JSON格式的字符串,以及将JSON数据解析回等效的Java对象。这个压缩包包含了Gson库的版本2.8.1,它提供了两个主要的组件:`gson-2.8.1.jar`和`gson-2.8.1-...
Gson库是由Google提供的一款强大的Java库,它允许开发者在Java对象和JSON数据之间进行无缝的相互转换。Gson-2.2.4.jar包包含了这个版本的Gson库的所有预编译类,使得开发者可以在自己的项目中直接引用,进行JSON操作...
在Android开发中,Gson库是一个非常重要的工具,它是由Google提供的用于在Java对象和JSON数据之间进行映射的Java库。这篇“Android学习笔记--Gson笔记”将深入探讨如何利用Gson来处理JSON数据,提升Android应用的...
Gson是Google开发的一款Java库,它允许将Java对象转换为JSON字符串,同时也能将JSON数据解析回等效的Java对象。在Java开发中,Gson库被广泛应用于数据序列化和反序列化,特别是在网络通信和存储数据时。本篇文章将...
Google的Gson库是Java开发中的一个强大工具,主要用于JSON对象和Java对象之间的相互转换。这个"google-json-gson-master.zip"压缩包包含了Gson项目的源码,方便开发者深入理解和定制化使用。JSON(JavaScript Object...
Gson是Google开发的一款强大的Java库,用于在Java对象和JSON数据之间进行映射。它使得Java对象可以被转换为JSON格式的字符串,同时也可以将JSON文本解析为等效的Java对象。Gson源码提供了深入理解其工作原理的机会,...