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);
}
}
相关推荐
Google Gson解析Json数据应用实例
gson是google推出的一个工具,用于将用户自定义的object转换成json字符,或将接收到的json字符转换成自定义的object。在应用的网络传输过程中具有重要作用。 导入Eclipse方法: 1.解压zip,找出3个jar文件,放入...
gson-2.8.6.jar下载,gson是Google开发的一款优秀的Java JSON解析库。它可以将Java对象转换成JSON字符串,也可以将JSON字符串转换成Java对象。gson库简单易用,性能良好,所以很受欢迎,被广泛应用于Android和Java项目中...
搜索谷歌概述这个 java 应用程序搜索用户给出的关键字来搜索 Google 并返回第一个相关标题和与之关联的相应 url。 该应用程序可以从命令行运行。 该应用程序的组件是在运行于Java SE 1.7运行时环境的 Mac OS X 10.9 ...
一个Android示例代码,使用Android的JSONObject和Google的gson在json和java对象之间转换数据。 此示例代码基于并经过修改以测试json和带有嵌套对象的java对象之间的转换。 创建并使用了三个自定义类: 相册(包含...
rule com.google.gson.** com.google.mygson.@1 上面写的就是修改规则,我们将包名中的 gson 修改为 mygson。打开命令行,输入如下命令。 java -jar jarjar.jar process rule.txt gson.jar mygson.jar 命令
GithubRepo贡献者这是Github回购贡献者客户端应用程序Android中使用Android Studio构建的该应用其中包括以下功能:导航视图,FAB,回收站视图,Cardview 改造Api呼叫和Gson 使用Google标准边距,填充,高度和宽度
Google GSON TextDrawable(用于头像) 下载 笔记 请注意,它不是Messenger应用程序的替代品,并且没有任何特殊功能。 该项目充当各种短信API的实现。 执照 Copyright 2017 Ramankit Singh Licensed under the ...
- [java-glances]( ) *(及其依赖项):* Google gson * [aXMLRPC]( ) * 您可以获得一个包含 java-glances 及其依赖项的 jar [此处]( ) - ActionBarSherlock 如何使用 从 Google Play 商店获取 [Android Glances]( ...
RESTful API 商店 使用 Java Servlet 的 RESTful API 电子商务应用程序。 这个应用程序是为了学习java servlet而制作的。...谷歌 Gson MySQL 连接器 ####工具 Maven Maven 编译器插件 Tomcat7 Maven 插件
我们去钓鱼吧! 为UCT的CSC3003S中的2014 Capstone项目创建了两个Android应用程序和一个小型Web服务器。 “让我们开始网络钓鱼”(由于某种原因缩写为“ LEAP”)项目的目标是提出... 谷歌gson 安卓 服务器 节点 表示
lib / google-gson-2.2.4 / gson-2.2.4-sources.jar 不幸的是,我没有 Rum.cmd 和 Built.cmd,因为我是 Unix 用户并且创建这两个文件不再像第一学期工作那样简单(由于外部库)。 应用程序运行了很多 Main.java ...
谷歌GSON Apache HTTP客户端 设置 LTI Launch项目提供了许多接口,这些接口必须执行才能使它在任何给定项目中起作用,并且还提供了一些bean,这些bean必须成为希望使用它的LTI应用程序中的Spring Autowiring的候选...
其中包含有关构建和验证应用程序功能的说明细节FetchInfoService (IntentService) 从服务器获取数据并与 MainActivity 通信WeatherInfoBroadcast,从 IntentService 接收 JSON 并将 JSON 解析为 Model(Google GSON) ...
java办公系统连接企业微信中的自建应用接口,实现自动给员工发送消息(适用于文本类型),可以用于发送任务通知。... <groupId>com.google.code.gson</groupId> <artifactId>gson <version>2.8.6 </dependency>
该应用程序是由Udacity的Google作为Android开发人员Naodegree程序的一部分编写的。 PopMovies是使用MVP架构编写的。 原料药 要使用该应用程序,您需要提供自己的API KEY 。 我使用了介绍的方法来存储api密钥。 将...
测试应用程序是使用 Android Studio 开发的,它被谷歌推荐并作为 Android 开发的官方 IDE ( ) 销售。 之所以选择这个工作环境,是因为它特定于平台和 Gradle 构建系统,可以轻松处理 Maven 中央存储库。 通过 Gradle...
自己最近编写的一个轻量级的可以多数据库单表进行增删改查,采用反射的机制,同时为了减少对数据库属性的查询,采用map的形式提高了应用程序...当然你也可以采用google提供的GSon框架,不过本身对日期支持不是很理想。
1.1.0 Jetpack的Core和LocalBroadcastManager Android X库 Google Gson 2.8.6 Java库,用于将Java对象序列化和反序列化为JSON OkHttp 3.12.12 适用于Android和Java应用程序的HTTP + HTTP / 2客户端 开放测量(OM)...
SDK集成:掌握各平台的软件开发工具包(SDK)集成方法,如Google Mobile Services、Apple iOS SDK等。 界面设计:遵循Material Design(Android)和Human Interface Guidelines(iOS)进行界面布局与交互设计。 ...