美文网首页
Gson 使用总结

Gson 使用总结

作者: DongGuangqing | 来源:发表于2020-09-24 22:31 被阅读0次

    Gson 简介

    Gson是Google推出的用来解析json数据以及将对象转换成json数据的框架。可以很方便地实现json数据与对象的相互转换,还可以自定义需要序列化或反序列化的字段。

    Gson Maven 依赖

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

    使用 Gson 进行对象序列化与反序列化

    public class ToJsonBeanOne {
        private int id;
        private String name;
        private int age;
    
      // 省略getter、setter
    }
    

    对象序列化

    //创建对象
    ToJsonBeanOne toJsonBeanOne = new ToJsonBeanOne(1, "小熊", 21);
    //将对象转换为json数据
    Gson gson = new Gson();
    gson.toJson(toJsonBeanOne);
    

    对象反序列化

    Gson gson = new Gson();
    //将json数据转换为对象
    ToJsonBeanOne beanOne = gson.fromJson(jsonString, ToJsonBeanOne.class);
    

    使用 Gson 进行List 序列化与反序列化

    将List 数据转换成Json

    Gson gson = new Gson();
    List<Integer> list = Arrays.asList(1, 2, 3);
    gson.toJson(list);
    

    使用Gson 将字符串反序列化成带泛型的List

    Type type = new TypeToken<List<ToJsonBeanOne>>(){}.getType();
    List<ToJsonBeanOne> beanOnes = gson.fromJson(jsonString, type);
    

    使用 Gson 进行 Map 类型的序列化与反序列化

    • 序列化
    Gson gson = new GsonBuilder().enableComplexMapKeySerialization().create();
    Map<String, ToJsonBeanOne> map = new LinkedHashMap<String, ToJsonBeanOne>();
    map.put("key1", new ToJsonBeanOne(1, "小熊1", 21));
    map.put("key2", new ToJsonBeanOne(2, "小熊2", 21));
    map.put("key3", new ToJsonBeanOne(3, "小熊3", 21));
    String jsonString = gson.toJson(map);
    
    • 反序列化
    Type type = new TypeToken<Map<String, ToJsonBeanOne>>() {}.getType();
    Map<String, ToJsonBeanOne> map2 = gson.fromJson(jsonString, type);
    

    相关文章

      网友评论

          本文标题:Gson 使用总结

          本文链接:https://www.haomeiwen.com/subject/zwotuktx.html