- 浏览: 466777 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
飞天奔月:
没有147 段
严格的手机号码正则表达式写法 --java -
飞天奔月:
182段没有 public static final ...
严格的手机号码正则表达式写法 --java -
zcc2010ry:
多谢分享,问题果断解决
Web app root system property already set to different value: 'webapp.root' -
hety163:
删除当前工作目录下的WORKSPACE/.metadata/. ...
“Initializing Java Tools 1%”问题的终极解决办法 -
qq12241713:
[b] :arrow: [i][/i][/b]
Flex和spring集成时需要的SpringFactory
1 .需要的Jar包
|
1 ) Google Gson(gson-xxx.jar)下载地址:http: //code.google.com/p/google-gson/downloads/list
|
2 )JUnit4
|
2 . 应用实例代码
|
下载地址:http: //download.csdn.net/source/3499627
|
包括如下类: |
1 )普通JavaBean类/带日期属性的JavaBean类:JavaBean.java/DateBean.java
|
2 )日期序列/反序列工具类:DateSerializerUtils.java、DateDeserializerUtils.java
|
3 )测试类GsonTester.java
|
具体代码: |
1 )JavaBean类/DateBean类
|
JavaBean属性:String id、String name、 int age、String addr;
|
DateBean属性:String id、String name、 int age、java.util.Date date;
|
2 )
|
DateSerializerUtils.java |
package com.lupeng.javase.json.util;
|
|
import java.lang.reflect.Type;
|
import java.util.Date;
|
import com.google.gson.JsonElement;
|
import com.google.gson.JsonPrimitive;
|
import com.google.gson.JsonSerializationContext;
|
import com.google.gson.JsonSerializer;
|
|
/** |
* 日期解序列实用工具类
|
* @author Lupeng
|
* @date 2011-08-06
|
*/
|
public class DateSerializerUtils implements JsonSerializer<java.util.Date>{
|
@Override |
public JsonElement serialize(Date date, Type type,
|
JsonSerializationContext content) { |
return new JsonPrimitive(date.getTime());
|
} |
|
} |
DateDeserializerUtils.java |
package com.lupeng.javase.json.util;
|
|
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;
|
/** |
* 日期序列化实用工具类
|
* @author Lupeng
|
* @date 2011-08-06
|
*/
|
public class DateDeserializerUtils implements JsonDeserializer<java.util.Date>{
|
@Override |
public java.util.Date deserialize(JsonElement json, Type type,
|
JsonDeserializationContext context) throws JsonParseException {
|
return new java.util.Date(json.getAsJsonPrimitive().getAsLong());
|
} |
|
} |
|
3 )测试类GsonTester.java
|
package com.lupeng.javase.apps.json;
|
|
import java.text.DateFormat;
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
import org.junit.Before;
|
import org.junit.Test;
|
|
import com.google.gson.Gson;
|
import com.google.gson.GsonBuilder;
|
import com.lupeng.javase.json.bean.DateBean;
|
import com.lupeng.javase.json.bean.JavaBean;
|
import com.lupeng.javase.json.util.DateDeserializerUtils;
|
import com.lupeng.javase.json.util.DateSerializerUtils;
|
|
/** |
* Google Gson解析Json数据实例
|
*
|
* 1.Bean、Json转换 testBeanJson()
|
* 2.List -> Json转换 testList2Json()
|
* 3.泛型List、Json相互转换 testGenericList2Json()
|
* 4.Map -> Json转换 testMap2Json()
|
* 5.泛型Map、Json相互转换 testGenericMap2Json()
|
* 6.带日期属性Bean、Json转换 testDateBeanJson()
|
* 7.带日期属性泛型List、Json转换
|
* testDateGenericListJson()
|
*
|
* @author Lupeng
|
* @create 2011-08-05
|
* @modify 2011-08-06
|
*/
|
@SuppressWarnings ( "unchecked" )
|
public class GsonTester {
|
private Gson gson = null ;
|
private GsonBuilder gsonBuilder = null ;
|
@Before |
public void setUp() {
|
gson = new Gson();
|
gsonBuilder = new GsonBuilder();
|
} |
/** |
* JavaBean、Json相互转换 |
*/ |
@Test |
public void testBeanJson() {
|
JavaBean bean = new JavaBean( "1001" , "scott" , 20 , "TL" );
|
// Bean -> Json |
String json = gson.toJson(bean); |
System.out.println(json); |
// Json -> Bean |
bean = gson.fromJson(json, JavaBean. class );
|
System.out.println(bean); |
} |
/** |
* List转换成Json字符串 |
*/ |
@Test |
public void testList2Json() {
|
// List |
List list = new ArrayList();
|
for ( int i = 0 ; i < 5 ; i++) {
|
list.add( "element" + i);
|
} |
System.out.println(list); |
// List -> Json |
String json = gson.toJson(list); |
System.out.println(json); |
} |
/** |
* 泛型List、Json相互转换 |
*/ |
@Test |
public void testGenericListJson() {
|
// 泛型List |
List<JavaBean> list = new ArrayList<JavaBean>();
|
for ( int i = 0 ; i < 3 ; i++) {
|
JavaBean user = new JavaBean( "100" + i, "name" + i, 20 + i, "BJ" + i);
|
list.add(user); |
} |
System.out.println(list); |
// 泛型List -> Json |
java.lang.reflect.Type type = |
new com.google.gson.reflect.TypeToken<List<JavaBean>>(){}.getType();
|
String json = gson.toJson(list, type); |
System.out.println(json); |
// Json -> 泛型List |
List<JavaBean> users = gson.fromJson(json.toString(), type); |
System.out.println(users); |
} |
/** |
* Map转换成Json字符串 |
*/ |
@Test |
public void testMap2Json() {
|
// Map数据 |
Map map = new HashMap();
|
map.put( "id" , "1001" );
|
map.put( "name" , "scott" );
|
map.put( "age" , 20 );
|
map.put( "addr" , "BJ" );
|
System.out.println(map); |
// Map -> Json |
String json = gson.toJson(map); |
System.out.println(json); |
} |
/** |
* 泛型Map、Json相互转换 |
*/ |
@Test |
public void testGenericMapJson() {
|
// 泛型Map数据 |
Map<String, JavaBean> map = new HashMap<String, JavaBean>();
|
for ( int i = 0 ; i < 5 ; i++) {
|
JavaBean user = new JavaBean( "100" + i, "name" + i, 20 + i, "LN" + i);
|
map.put( "100" + i, user);
|
} |
System.out.println(map); |
// 泛型Map -> Json |
java.lang.reflect.Type type = |
new com.google.gson.reflect.TypeToken<Map<String, JavaBean>>(){}.getType();
|
String json = gson.toJson(map, type); |
System.out.println(json); |
// Json -> Map |
Map<String, JavaBean> users = gson.fromJson(json.toString(), type); |
System.out.println(users); |
} |
/** |
* 带日期类型Bean、Json相互转换 |
*/ |
@Test |
public void testDateBeanJson() {
|
// 日期Bean数据 |
DateBean bean = new DateBean( "1001" , "scott" , 20 , new Date());
|
// Bean(带日期属性) -> Json |
gson = gsonBuilder.registerTypeAdapter(java.util.Date. class ,
|
new DateSerializerUtils()).setDateFormat(DateFormat.LONG).create();
|
String json = gson.toJson(bean); |
System.out.println(json); |
// Json -> Bean(带日期类型属性) |
gson = gsonBuilder.registerTypeAdapter(java.util.Date. class ,
|
new DateDeserializerUtils()).setDateFormat(DateFormat.LONG).create();
|
java.lang.reflect.Type type = |
new com.google.gson.reflect.TypeToken<DateBean>(){}.getType();
|
DateBean b = gson.fromJson(json, type); |
System.out.println(b); |
} |
/** |
* 泛型日期List、Json相互转换 |
*/ |
@Test |
public void testDateGenericListJson() {
|
// 泛型日期List |
List<DateBean> list = new ArrayList<DateBean>();
|
for ( int i = 0 ; i < 3 ; i++) {
|
DateBean user = new DateBean( "100" + i, "name" + i, 20 + i, new Date());
|
list.add(user); |
} |
System.out.println(list); |
// 泛型日期List -> Json |
gson = gsonBuilder.registerTypeAdapter(java.util.Date. class ,
|
new DateSerializerUtils()).setDateFormat(DateFormat.LONG).create();
|
java.lang.reflect.Type type = |
new com.google.gson.reflect.TypeToken<List<DateBean>>(){}.getType();
|
String json = gson.toJson(list, type); |
System.out.println(json); |
// Json -> 泛型日期List |
gson = gsonBuilder.registerTypeAdapter(java.util.Date. class ,
|
new DateDeserializerUtils()).setDateFormat(DateFormat.LONG).create();
|
List<DateBean> users = gson.fromJson(json.toString(), type); |
System.out.println(users); |
} |
} |
发表评论
-
JAVA、PHP、C#、Object-C 通用的DES加密解密
2016-01-22 13:46 2141JAVA、Android: package com.ex ... -
IntelliJ IDEA 注册码
2016-01-13 18:26 2812注册时选择“License server”输入“http:// ... -
myEclipse8.5安装svn插件
2014-05-04 16:36 799在网上查了一下,安装的方法有几种,这里给大家推荐一种快速 ... -
System.getProperty()方法大全
2014-04-23 10:58 648System.out.prin ... -
Tomcat中404/500 错误,自定义错误页面
2014-03-23 00:04 40514Tomcat中404/500 错误,自定义错误页面 ... -
jdbc.SQLServerException: 必须声明标量变量 "@P0where"异常原因及其解决办法
2014-01-29 16:34 3578异常描述: 一个删除语句的功能按钮用Servlet+J ... -
Tomcat性能优化
2014-01-09 09:51 8231Tomcat6.18版本:apache-tomcat-6. ... -
版本错异常:java.lang.UnsupportedClassVersionError: Bad version number in .class file
2013-12-23 11:54 838今天在创建了一个工程,编译并部署到tomcat后,发现出现 ... -
Exception loading sessions from persistent storage
2013-12-20 17:06 762严重: Exception loading sessions ... -
Apache+Tomcat集群配置
2013-12-11 22:56 2627本文Apache+Tomcat集群配置 基于最新的Apa ... -
严格的手机号码正则表达式写法 --java
2013-12-06 16:51 32895更严格的手机号码正则表达式写法 --java 移动:13 ... -
Web app root system property already set to different value: 'webapp.root'
2013-12-06 16:42 11389Tomcat发布多个项目时抛的webAppRootKey ... -
Servlet class X is not a javax.servlet.Servlet解决方案
2013-12-04 14:29 10026写servlet的时候,报500错:Servlet cla ... -
common-configuration读取xml,properties文件
2013-11-22 17:58 1293我们在实际的开发设计中,通常要读各种各样的配置文件,十分 ... -
Apache Common Configuration 初步使用
2013-11-22 17:05 948今天玩了一把Apache common configura ... -
“Initializing Java Tools 1%”问题的终极解决办法
2013-10-10 10:24 11525相信很多使用eclipse的朋友都有受到过“Initial ... -
java统计出字符串中的英文字母,空格,数字和其他字符的个数
2013-09-04 17:22 40465分别统计字符串的数字、字母、空格和其他字符(包括汉字、标点 ... -
java取小数点后两位的4种方法
2013-09-04 13:01 3338方法一 Long是长整型,怎么有小数,是double吧 ... -
java实现页面访问量统计的实例
2013-09-03 17:05 15393有时候,我们可能需要统计Web站点上的一个特定页面的访问次数 ... -
Java中去除字符串中的所有空格
2013-08-05 10:44 5634JAVA中去掉空格 1. String.trim( ...
相关推荐
谷歌Gson库是Java开发中广泛使用的JSON解析和序列化工具,版本2.8.0是其一个稳定且功能丰富的版本。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。...
标题"Google gson jar包"暗示了我们讨论的是Google Gson库的Java档案文件(JAR),它包含了所有必要的类和资源,使开发者能够在项目中直接使用Gson功能。JAR文件通常在Java开发中用于封装库,以便在应用程序中作为...
Gson是Google开发的一款Java语言编写...无论是在Android开发还是服务器端Java应用中,Gson都能提供强大的支持,帮助开发者高效地处理JSON数据。了解并熟练掌握Gson的使用,对于提升Java开发中的数据处理能力至关重要。
这个“Google Gson解析Json数据应用实例”旨在深入探讨Gson库的使用,帮助开发者更好地理解和运用它来处理JSON数据。 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也...
Google Gson 是一个强大的Java库,由Google开发,用于在Java对象和JSON数据之间进行相互转换。这个库使得Java对象能够轻松地被序列化为JSON格式的字符串,同时也能将JSON字符串解析为相应的Java对象,极大地简化了...
谷歌的Gson库是一款强大的Java库,用于将Java对象转换为JSON(JavaScript Object Notation)格式,反之亦然。这个库使得在Java应用程序中处理JSON数据变得极其简单,尤其适用于那些需要在网络通信、存储或者显示JSON...
Gson是Google开发的一款强大的Java库,用于在Java对象和JSON数据之间进行映射。它的全称是Google Gson,版本2.8.2是该库的一个稳定版本,提供了高效的性能和丰富的功能。在这个版本中,Gson库继续优化了其核心功能,...
谷歌的Gson库是Java开发人员用来在JSON和Java对象之间进行序列化和反序列化的强大工具。这个"google-gson-2.2.4.zip"压缩包包含了Gson库的2.2.4版本,这是一个广泛使用的稳定版本,适用于各种项目需求。Gson库允许...
Google Gson是谷歌开发的一款强大的JSON解析库,它允许开发者在Java对象和JSON数据之间进行相互转换。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛应用于Web服务和应用程序之间的数据通信...
这时,Google的Gson库就发挥了重要作用。本文将详细介绍如何在Eclipse和Android Studio环境下使用Gson库来解析Json数据。 首先,我们来看Eclipse下的Gson使用示例。在Eclipse中,你需要先引入Gson库。这可以通过在...
JSON被广泛应用于Web服务和客户端之间的数据交互,而Gson库则为Java开发者提供了一个便捷的工具来处理这种数据。 Gson的核心功能包括: 1. **对象转JSON**:通过`Gson().toJson(object)`方法,你可以将任何Java...
谷歌的Gson库是一个强大的Java库,它允许开发者将Java对象转换为JSON格式的字符串,同时也能将JSON数据解析回等效的Java对象。这个工具类对于处理JSON数据,尤其是在服务器端与客户端之间的数据交换中,显得尤为重要...
总之,"google-gson-2.2.4"是一个强大的工具,它简化了Java应用程序与JSON数据之间的交互,适用于各种Web服务、移动应用和服务器端开发场景。无论你是进行数据传输、本地持久化还是与其他系统交换数据,Gson都是一个...
标题 "Google-gson-2.8.2" 指的是 Google Gson 库的一个特定版本,即 2.8.2。Gson 是一个由 Google 开发的 Java 类库,它的主要功能是处理 JSON(JavaScript Object Notation)数据格式。JSON 是一种轻量级的数据...
谷歌的Gson库是Java开发中的一个强大工具,专门用于JSON对象和Java对象之间的相互转换。这个库使得在Java应用程序中处理JSON数据变得极其简单,无论是将Java对象序列化为JSON字符串,还是将JSON字符串反序列化为Java...
Google Gson库是Java平台上的一个强大工具,用于将Java对象转换为对应的JSON表示,反之亦然。在Android Studio中,Gson库可以帮助我们方便地解析和生成JSON数据。本篇文章将详细介绍如何在Android Studio环境下使用...
在Java开发中,`com.google.gson.Gson`是一个广泛使用的库,用于将Java对象转换为JSON字符串,反之亦然。在你的问题中,你提到“莫名被加了积分,回归0”,这可能指的是某个版本更新或者配置更改导致了Gson库在你的...
教程还可能包含实践示例,帮助你更好地理解和应用Gson。 总的来说,Gson是一个强大的JSON处理库,它简化了Java和JSON之间的数据转换,对于任何需要与JSON交互的Java项目都是不可或缺的工具。通过阅读提供的教程,你...
例如,从网络获取JSON数据后,可以使用Gson将其转换为Java对象,然后在应用中进行处理。 在Eclipse中进行调试时,可以利用Logcat输出JSON字符串或者转换后的Java对象,以便检查数据是否正确解析。 总的来说,...
**谷歌Gson 2.2.4:Java与JSON之间的桥梁** 谷歌Gson库是一个强大的工具,它在Java开发中扮演着重要的角色,特别是在处理JSON数据时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,因其简洁、易...