美文网首页
gson使用点滴

gson使用点滴

作者: quanCN | 来源:发表于2019-05-06 11:31 被阅读0次

JSON 是一种文本形式的数据交换格式,它比XML更轻量、比二进制容易阅读和编写,调式也更加方便;解析和生成的方式很多,Java中最常用的类库有:JSON-Java、Gson、Jackson、FastJson等
官网

Gson的基本用法

Gson提供了fromJson() 和toJson() 两个直接用于解析和生成的方法,前者实现反序列化,后者实现了序列化;同时每个方法都提供了重载方法

  • 基本数据类型的解析
    Gson gson = new Gson();
    int i = gson.fromJson("100", int.class); //100
    double d = gson.fromJson("\"99.99\"", double.class);  //99.99
    boolean b = gson.fromJson("true", boolean.class);     // true
    String str = gson.fromJson("String", String.class);   // String
    
  • 基本数据类型的生成
    Gson gson = new Gson();
    String jsonNumber = gson.toJson(100);       // 100
    String jsonBoolean = gson.toJson(false);    // false
    String jsonString = gson.toJson("String"); //"String"
    
  • pojo类解析与生成
    • pojo类
      public class Person {
          private String name;
          private Integer age;
      }
      
    • 解析
      Gson gson = new Gson();
      String json = "{\"name\":\"tom\",\"age\":12}";
      Person person = gson.fromJson(json,Person.class);
      System.out.println(person);
      
    • 生成json
      Gson gson = new Gson();
      Person person = new Person("tom",12);
      String json = gson.toJson(person);
      System.out.println(json);
      
    :json的键和值是的名称和类型是和pojo类一一对应的

属性重命名 @SerializedName 注解

  • Gson在序列化和反序列化时需要使用反射,使用@SerializedName注解可以更改映射规则
  • 为POJO字段提供备选属性名:SerializedName注解提供了两个属性,上面用到了其中一个,别外还有一个属性alternate,接收一个String数组
    :alternate需要2.4版本
    @SerializedName(value = "name",alternate = {"my_name","myName"})
    private String myName;
    //当三个属性(name,my_name,myName)都中出现任意一个均可以等到正确结果,当多种情况同时出现,以最后一个出现的值为准。
    
    Gson gson = new Gson();
    String json = "{\"my_name\":\"tom1\",\"name\":\"tom2\",\"myName\":\"tom3\",\"age\":18}";
    Person person = gson.fromJson(json,Person.class);
    System.out.println(person);
    

Gson数组处理

  • 遇到数组只需将反射类型换成数组类型即可
    Gson gson = new Gson();
    String json = "[{\"name\":\"tom\",\"age\":18},{\"name\":\"tom\",\"age\":18},{\"name\":\"tom\",\"age\":18}]";
    Person[] people = gson.fromJson(json,Person[].class);
    for (Person person : people) {
        System.out.println(person);
    }
    

相关文章

  • gson使用点滴

    JSON 是一种文本形式的数据交换格式,它比XML更轻量、比二进制容易阅读和编写,调式也更加方便;解析和生成的方式...

  • Andriod中Gson使用

    Gson使用 参考你真的会用Gson吗?Gson使用指南 在Android中使用Gson,先在Compile中加入...

  • Gson使用指南 2017-08-15

    Gson使用指南系列其它文章你真的会用Gson吗?Gson使用指南(一)你真的会用Gson吗?Gson使用指南(二...

  • gson的使用细节

    关于json,gson是最常用到的一个库。平常使用时我通常使用Gson gson = new Gson();的方式...

  • Android 库 Gson

    【Android 库 Gson】 引用: ★Gson 解析教程★★★ Gson的入门使用Gson全解析(上)-Gs...

  • Gson全解析(上)-Gson基础

    gson github地址google/gson 本篇文章是基于Gson官方使用指导(Gson User Guid...

  • Gson全解析(中)-TypeAdapter的使用

    gson github地址google/gson 本篇文章是基于Gson官方使用指导(Gson User Guid...

  • Gson用户使用文档

    1.概述2.Gson的目标3.Gson的性能和扩展性4.Gson的使用者5.如何使用Gson 通过Maven来使用...

  • Android中详尽的Gson(可能有你没用过的方式)

    Gson使用 项目地址:https://github.com/google/gson 实例化Gson对象 通过构造...

  • JSON与LIST互转

    使用谷歌的Gson https://github.com/google/gson 使用阿里的fastJson ht...

网友评论

      本文标题:gson使用点滴

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