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()方法即可。


 

相关推荐

  1. 【kotlin其它】Gson简单

    2024-04-05 18:46:01       11 阅读
  2. Gson使用

    2024-04-05 18:46:01       24 阅读
  3. Gson

    2024-04-05 18:46:01       10 阅读
  4. nc

    2024-04-05 18:46:01       34 阅读
  5. QueryWrapper

    2024-04-05 18:46:01       15 阅读
  6. axios

    2024-04-05 18:46:01       8 阅读
  7. React <> </>

    2024-04-05 18:46:01       9 阅读
  8. pymysql基本

    2024-04-05 18:46:01       41 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-05 18:46:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-05 18:46:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-05 18:46:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-05 18:46:01       18 阅读

热门阅读

  1. 每日一题:C语言经典例题之判断实数相等

    2024-04-05 18:46:01       19 阅读
  2. Python小游戏(1)附带源码

    2024-04-05 18:46:01       13 阅读
  3. 体感游戏开发:体感游戏常用技术

    2024-04-05 18:46:01       19 阅读
  4. 爬取高校专业信息的Python爬虫简介与实践

    2024-04-05 18:46:01       18 阅读
  5. nginx压缩文件gzip配置如何实现

    2024-04-05 18:46:01       15 阅读
  6. GPS工具箱导出数据2

    2024-04-05 18:46:01       13 阅读
  7. Zookeeper脑裂解决方案

    2024-04-05 18:46:01       15 阅读
  8. Zookeeper 中的 CAP

    2024-04-05 18:46:01       12 阅读