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"}

  • 相关阅读:
    CVE-2017-11826:Office Open XML 标签嵌套解析混淆漏洞
    未授权访问漏洞总结
    Linux提权—脏牛漏洞(CVE-2016-5195)
    Linux提权
    (翻译)OpenDocument and Open XML security (OpenOffice.org and MS Office 2007)
    SSH后门万能密码
    Linux中使用gdb dump内存
    在 x64dbg 中设置条件断点和条件记录断点
    Linux中的.bash_ 文件详解
    Photoshop 第二课 工具-钢笔的使用
  • 原文地址:https://www.cnblogs.com/superch0054/p/4010072.html
Copyright © 2011-2022 走看看