028-86261949

当前位置:首页 > 技术交流 > GSON的基本认识与使用

GSON的基本认识与使用

2018/08/24 09:59 分类: 技术交流 浏览:61

我们平时都开发经常使用JSON来做数据传输。这里给大家介绍一个第三方的开源工具:GSON(来解释JSON的数据格式,主要用途为序列化Java对象为JSON字符串,或反序列化JSON字符串成Java对象)
这个项目是由Google最先提出与出源出来的,下面是这个开源项目的主页:
       GSON功能强大且性能也非常出色(虽然现在用得较少,但是确实是一款非常 出色的工具)。
 
接下来,我们来完成GSON的使用。
第一步:在pom.xml中加上相应的maven依赖
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.5</version>
</dependency>
 
第二步:创建一个Employee对象

public class Employee {

    private Long id;
    private String name;
    private String password;
    private Integer age;
    private String[] hobbys;
    private Date bornDate;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String[] getHobbys() {
        return hobbys;
    }

    public void setHobbys(String[] hobbys) {
        this.hobbys = hobbys;
    }

    public Date getBornDate() {
        return bornDate;
    }

    public void setBornDate(Date bornDate) {
        this.bornDate = bornDate;
    }

    @Override
    public String toString() {
        return "Employee{" +
                "id=" id +
                ", name='" name '\'+
                ", password='" password '\'+
                ", age=" age +
                ", hobbys=" + Arrays.toString(hobbys) +
                ", bornDate=" bornDate +
                '}';
    }
} 第三步:使用GSON工具来转换数据@Test
public void testObj2Json() throws Exception{

    Employee employee = new Employee();
    employee.setId(1L);
    employee.setName("itsource");
    employee.setAge(9);
    employee.setBornDate(new Date());
    employee.setPassword("123456");
    employee.setHobbys(new String[]{"学习","打球"});

    Gson gson = new Gson();
    String json = gson.toJson(employee);//这里最简单的一个转换
    
System.out.println(json);
} 下面就是咱们执行后这个对象转换的结果:

{"id":1,"name":"itsource","password":"123456","age":9,"hobbys":["学习","打球"],"bornDate":"Aug 23, 2018 7:32:31 PM"}

    大家注意上面,咱们转换成JSON时的key就是相应的属性名称,我们可以直接在某一个忏悔加一个标签,还个性生成的JSON的属性名称。 如下代码:public class Employee {
    private Long id;
    @SerializedName("username")
    private String name;
    }

我们就会看到,生成的json结果如下:
{"id":1,"username":"itsource","password":"123456","age":9,"hobbys":["学习","打球"],"bornDate":"Aug 23, 2018 7:35:57 PM"}
 
还可以忽略某个字段不进行输出:

public class Employee {
    private transient String password;    …

}
通过这个我们可以看到它的相应字段就不会输出,效果如下:
{"id":1,"username":"itsource","age":9,"hobbys":["学习","打球"],"bornDate":"Aug 23, 2018 7:46:07 PM"}
#标签:GSON,认识