ITPub博客

首页 > 大数据 > Hadoop > Google开源项目Gosn使用教程

Google开源项目Gosn使用教程

Hadoop 作者:awer5 时间:2011-12-23 20:50:00 0 删除 编辑
Gosn是一个Java类库,它可以快速与JAVA对象互相转换,极其方便。笔者在使用AJAX技术时抛弃XML是因为它在传输过程中所产生的冗余数据很多,导致传输速度慢而浪费不必消耗的时间。为了让大家能快速掌握并运用Gson,笔者将用实例来贯穿全文。

工具/原料

  • google-gson

步骤/方法

  1. 1
    准备工作
  2. 2
    1、到Gosn官网下载google-gson-2.0-release.zip并解压。
  3. 3
    2、创建一个JAVA WEB项目,名字随意。创建的时候注意版本应选择JAVA EE 5.0,因为笔者在该教程中会使用到JAVA的泛型。
  4. 4
    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();
    }
    }
  5. 5
    代码解读
  6. 6
    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 listUser = new ArrayList();
    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(" 格式化后: " + gsonBuilder.toJson(user));
    }
    }
  7. 7
    输出结果
  8. 8
    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"}
    END

注意事项

  • 建议新人照着代码敲,熟练后再写出自己的思路。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21970724/viewspace-1111401/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2009-06-24