Google开源项目Gosn使用教程
Gosn是一个Java类库,它可以快速与JAVA对象互相转换,极其方便。笔者在使用AJAX技术时抛弃XML是因为它在传输过程中所产生的冗余数据很多,导致传输速度慢而浪费不必消耗的时间。为了让大家能快速掌握并运用Gson,笔者将用实例来贯穿全文。
步骤/方法
- 01
准备工作
- 02
1、到Gosn官网下载google-gson-2.0-release.zip并解压。
- 03
2、创建一个JAVA WEB项目,名字随意。创建的时候注意版本应选择JAVA EE 5.0,因为笔者在该教程中会使用到JAVA的泛型。
- 04
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(); } }
- 05
代码解读
- 06
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)); } }
- 07
输出结果
- 08
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"}