Google 开源项目Gosn java类使用
来源:互联网 发布:java 将日志写入文件 编辑:程序博客网 时间:2024/05/02 12:49
Gosn是一个Java类库,它可以快速与JAVA对象互相转换,极其方便。笔者在使用AJAX技术时抛弃XML是因为它在传输过程中所产生的冗余数据很多,导致传输速度慢而浪费不必消耗的时间。为了让大家能快速掌握并运用Gson,笔者将用实例来贯穿全文。
准备工作
SHA1校验码: ed4d4178830718ee060700d21e087ea71e9b60c7
2、创建一个JAVA WEB项目,名字随意。创建的时候注意版本应选择JAVA EE 5.0,因为笔者在该教程中会使用到JAVA的泛型。
3、创建一个 Users.java POJO 类。
package com.lingdus.bean;
import java.io.Serializable;
import java.util.Date;
public class Users implements Serializable {
private int id;
private String username;
private String password;
private Date register;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Date getRegister() {
return register;
}
public void setRegister(Date register) {
this.register = register;
}
public Users() {
this.register = new Date();
}
}
代码解读
package com.lingdus.servlet;
import java.util.ArrayList;
import java.util.List;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.lingdus.bean.Users;
public class Test {
public static void main(String[] args) {
// 为 Users 添加数据
Users user = new Users();
user.setId(110);
user.setUsername("张三");
user.setPassword("123456");
// 创建一个 Gson 对象
Gson gson = new Gson();
// 把普通的JAVA对象转换为JSON格式
String result = gson.toJson(user);
System.out.println("JAVA TO JSON: " + result);
/**
* 其中,名字要和JAVABEAN中的对应起来,因为它是利用反射来完成该功能的
*
* 名字不要加引号,VALUE值最好加单引号引号,每个键值对用逗号分割
*
*/
String jsonString = "{id: 120, username:'李四', password:'654321'}";
/**
* 把普通的JSON格式转换为JAVA简单对象
*
* 第一个参数:普通的JSON格式,是字符串
*
* 第二个对象:简单的POJO类,应注意该类至少符合POJO定义
*
* 返回:它返回的就是这个“简单的POJO类”对象
*/
user = gson.fromJson(jsonString, Users.class);
System.out.println("JSON TO JAVA: " + user.getId() + ", "
+ user.getUsername() + ", " + user.getPassword());
/**
* 对于泛型使用方式也是一样的,不过输出结果有对"[]",表示是个数组
*
*/
List<Users> listUser = new ArrayList<Users>();
listUser.add(user);
System.out.println();
// 遍历原始数据
for (Users u : listUser) {
System.out.println("JAVA 泛型: " + u.getId() + ", " + u.getUsername()
+ ", " + u.getPassword());
}
// 转换为JSON
String listJson = gson.toJson(listUser);
System.out.println("JAVA 泛型 TO JSON: " + listJson);
/**
* 以上的方法基本能满足很多需求,但又一个重要的东西,那就是日期
*
* 比如说我想在后端把数据库抓出来的日期给格式化,该如何处理呢?
*
*/
Gson gsonBuilder = new GsonBuilder().setDateFormat(
"yyyy-MM-dd hh:mm:ss").create();
System.out.println("\n格式化后: " + gsonBuilder.toJson(user));
}
}
输出结果
JAVA TO JSON: {"id":110,"username":"张三","password":"123456","register":"Dec 22, 2011 12:10:26 PM"}
JSON TO JAVA: 120, 李四, 654321
JAVA 泛型: 120, 李四, 654321
JAVA 泛型 TO JSON: [{"id":120,"username":"李四","password":"654321","register":"Dec 22, 2011 12:10:26 PM"}]
准备工作
1、到Gosn官网 http://code.google.com/p/google-gson/ 下载google-gson-2.0-release.zip并解压。
2、创建一个JAVA WEB项目,名字随意。创建的时候注意版本应选择JAVA EE 5.0,因为笔者在该教程中会使用到JAVA的泛型。
3、创建一个 Users.java POJO 类。
package com.lingdus.bean;
import java.io.Serializable;
import java.util.Date;
public class Users implements Serializable {
private int id;
private String username;
private String password;
private Date register;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Date getRegister() {
return register;
}
public void setRegister(Date register) {
this.register = register;
}
public Users() {
this.register = new Date();
}
}
代码解读
package com.lingdus.servlet;
import java.util.ArrayList;
import java.util.List;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.lingdus.bean.Users;
public class Test {
public static void main(String[] args) {
// 为 Users 添加数据
Users user = new Users();
user.setId(110);
user.setUsername("张三");
user.setPassword("123456");
// 创建一个 Gson 对象
Gson gson = new Gson();
// 把普通的JAVA对象转换为JSON格式
String result = gson.toJson(user);
System.out.println("JAVA TO JSON: " + result);
/**
* 其中,名字要和JAVABEAN中的对应起来,因为它是利用反射来完成该功能的
*
* 名字不要加引号,VALUE值最好加单引号引号,每个键值对用逗号分割
*
*/
String jsonString = "{id: 120, username:'李四', password:'654321'}";
/**
* 把普通的JSON格式转换为JAVA简单对象
*
* 第一个参数:普通的JSON格式,是字符串
*
* 第二个对象:简单的POJO类,应注意该类至少符合POJO定义
*
* 返回:它返回的就是这个“简单的POJO类”对象
*/
user = gson.fromJson(jsonString, Users.class);
System.out.println("JSON TO JAVA: " + user.getId() + ", "
+ user.getUsername() + ", " + user.getPassword());
/**
* 对于泛型使用方式也是一样的,不过输出结果有对"[]",表示是个数组
*
*/
List<Users> listUser = new ArrayList<Users>();
listUser.add(user);
System.out.println();
// 遍历原始数据
for (Users u : listUser) {
System.out.println("JAVA 泛型: " + u.getId() + ", " + u.getUsername()
+ ", " + u.getPassword());
}
// 转换为JSON
String listJson = gson.toJson(listUser);
System.out.println("JAVA 泛型 TO JSON: " + listJson);
/**
* 以上的方法基本能满足很多需求,但又一个重要的东西,那就是日期
*
* 比如说我想在后端把数据库抓出来的日期给格式化,该如何处理呢?
*
*/
Gson gsonBuilder = new GsonBuilder().setDateFormat(
"yyyy-MM-dd hh:mm:ss").create();
System.out.println("\n格式化后: " + gsonBuilder.toJson(user));
}
}
输出结果
JAVA TO JSON: {"id":110,"username":"张三","password":"123456","register":"Dec 22, 2011 12:10:26 PM"}
JSON TO JAVA: 120, 李四, 654321
JAVA 泛型: 120, 李四, 654321
JAVA 泛型 TO JSON: [{"id":120,"username":"李四","password":"654321","register":"Dec 22, 2011 12:10:26 PM"}]
格式化后: {"id":120,"username":"李四","password":"654321","register":"2011-12-22 12:10:26"}
- Google 开源项目Gosn java类使用
- Gosn 使用
- Gosn的使用
- java - Gosn 后台解析
- 使用Google Code发布开源项目
- Google开源项目ZXing(二维条码编解码)简单使用(Java版)
- Google开源项目ZXing(二维条码编解码)简单使用(Java版)
- Java版星际----已加入Google Code开源项目
- App开发日报 2015-05-09 Google Sky开源项目:不使用JAVA开发120FPS安卓应用
- google android 开源项目
- Google Code 开源项目
- Google Code开源项目
- google开源项目介绍
- Google的开源项目
- Google Code开源项目
- google开源项目 bitcoinj
- Google开源项目word2vec
- google 的开源项目
- 字符串处理函数
- Jmail c# 使用 发送邮件完全解决方案
- 正则表达式 验证 数字 正数 负数 小数
- LINQ to Entities查询
- C# DateTime 日期加1天 减一天 加一月 减一月 等方法
- Google 开源项目Gosn java类使用
- repeater 取<a>的ID
- C# 验证控件与confirm 冲突 的 解决方法
- linux 计划任务
- empire数据库表结构
- DIV透明设置
- jQuery 下载 地址
- VC程序员常用的开发工具
- 帝国CMS6.6程序剖析——e/class/connect.php