zoukankan      html  css  js  c++  java
  • gson介绍

    java json对象的处理,目前有好一些类库,比较著名的有Jackson,Fastjson等。

    这里介绍一下google封装的类库gson。

    gson和其他现有java json类库最大的不同时gson需要序列化得实体类不需要

    使用annotation来标识需要序列化得字段,同时gson又可以通过使用annotation来灵活配置需要序列化的字段。

    1)toJason()方法将对象转换成Json字符串

    2)fromJson()方法来实现从Json相关对象到java实体的方法。

    如:

    Person person = gson.fromJson(str, Person.class);
    List<Person> ps = gson.fromJson(str, new TypeToken<List<Person>>(){}.getType());
    其中TypeToken,它是gson提供的数据类型转换器,可以支持各种数据集合类型转换。

    通过使用annotation来灵活配置需要序列化的字段的示例如下,不用太多解释了。

    public class VersionedClass {
      @Since(1.1) private final String newerField;
      
    @Since(1.0) 
    private final String newField;
      private final String field;

      public VersionedClass() {
        this.newerField = "newer";
        this.newField = "new";
        this.field = "old";
      }
    }

    VersionedClass versionedObject = new VersionedClass();
    Gson gson = new GsonBuilder().setVersion(1.0).create();

    String jsonOutput = gson.toJson(someObject);
    System.out.println(jsonOutput);
    System.out.println();

    gson = new Gson();
    jsonOutput = gson.toJson(someObject);
    System.out.println(jsonOutput);


    ======== OUTPUT ========
    {"newField":"new","field":"old"}

    {"newerField":"newer","newField":"new","field":"old"}

  • 相关阅读:
    练习上传下载时遇到的问题
    el表达式遇到的问题
    js中for循环闭包问题记录
    随机排座位(模板) 20.10.17
    #STL:优先队列数据结构函数的用法 #堆 #优先队列数据结构(堆) #priority_queue 20.10.17
    关于int的范围
    #归并排序 归并排序的刷题记录 ~20.09.25
    #欧拉函数 ~20.8.27
    #排列 #组合 ~20.8.24
    105.七夕祭
  • 原文地址:https://www.cnblogs.com/superch0054/p/4010072.html
Copyright © 2011-2022 走看看