Google Gson应用
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);
}
}
相关推荐
谷歌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)是一种轻量级的数据交换格式,因其简洁、易...