Gson的用法

1. 导入依赖

<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.6</version>
</dependency>

2. 使用Gson进行解析

2.1 Gson解析普通对象

package com.jiang.partnetbackend.model.domain;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @author Lenovo
 * @date 2024/4/5
 * @time 16:05
 * @project partnet-backend
 **/

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Person {
    
    private int age;
    private String name;
    private String sex;
}

2.1.1 将Java对象转json

    @Test
    public void testJavatoGson(){
        Person person=new Person(10,"小明","男");
        Gson gson = new Gson();
        String res = gson.toJson(person);
        System.out.println("java对象转json:"+res);
    }

2.1.2 将json字符转json

调用Gson的 <T> t fromJson(String, Class)方法,将Json串转换为对象

    @Test
    public void testGsontoJava(){
        Person person=new Person(10,"小明","男");
        Gson gson = new Gson();
        String res = gson.toJson(person);
        System.out.println("java对象转json:"+res);
        Person resPerson = gson.fromJson(res, Person.class);
        System.out.println("json转java:"+resPerson);

    }

2.2 Gson解析List

2.2.1 List转json

    @Test
    public void testListToJson()
    {
        // 先准备一个List集合
        List<Person> list = new ArrayList<Person>();
        list.add(new Person(16, "小明","男"));
        list.add(new Person( 16,"小红","女"));
        System.out.println(list);
        // 创建Gson实例
        Gson gson = new Gson();
        // 调用Gson的toJson方法
        String listJson = gson.toJson(list);
        System.out.println("list 转json:"+listJson);
    }

2.2.2 json转List:

    @Test
    public void testJsontoList()
    {
        // 先准备一个List集合
        List<Person> list = new ArrayList<Person>();
        list.add(new Person(16,"小明","男"));
        list.add(new Person( 16,"小红","女"));
        System.out.println(list);
        // 创建Gson实例
        Gson gson = new Gson();
        // 调用Gson的toJson方法
        String listJson = gson.toJson(list);
        System.out.println("list 转json:"+listJson);

        List<Person> personList = gson.fromJson(listJson, new TypeToken<List<Person>>() {}.getType());
        System.out.println(personList);
    }

此方法参数中的Type类型可以通过Gson包提供TypeToken<>类获取。这个类带有泛型,且这个泛型就是Json串转换成为对象后的类型(此处是List<Person>)我们不需要重写这个类中的任何方法,只需要创建这个类的一个匿名内部类并调用getTpye()方法即可。

2.3 Gson 解析Map

 @Test
    public void testMapToJson()
    {
        Map<String, Person> map = new HashMap<>();
        map.put("p1", new Person(16,"小明","男"));
        map.put("p2", new Person( 16,"小红","女"));

        Gson gson = new Gson();
        String mapJson = gson.toJson(map);

        System.out.println(mapJson);
        Map<String, Person> jsonMap = gson.fromJson(mapJson, new TypeToken<Map<String, Person>>() { }.getType());
        System.out.println(jsonMap);
    }

json 转Map的方法与转List的方法类似,参数中的Type类型可以通过Gson包提供TypeToken<>类获取。这个类带有泛型,且这个泛型就是Json串转换成为对象后的类型(此处是Map<key,values>)我们不需要重写这个类中的任何方法,只需要创建这个类的一个匿名内部类并调用getTpye()方法即可。


 

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值