zoukankan      html  css  js  c++  java
  • GSON

    1.使用@Expose可以区分实体中不想被序列化的属性

    @Expose标签的2个属性. 

      1.1 deserialize
     (boolean) 反序列化 默认 true
        1.2 serialize  (boolean) 序列化 默认 true

        使用 new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();创建Gson对象,没有@Expose注释的属性将不会被序列化

     

    public class User {

    @Expose

    private String username;

    @Expose(serialize=false)

    private int age ;

    private List<String> list;

    public User(String username, int age) {

    super();

    this.username = username;

    this.age = age;

    }

    public String getUsername() {

    return username;

    }

    public void setUsername(String username) {

    this.username = username;

    }

    public int getAge() {

    return age;

    }

    public void setAge(int age) {

    this.age = age;

    }

    public List<String> getList() {

    return list;

    }

    public void setList(List<String> list) {

    this.list = list;

    }

    public static void main(String []args){

    User user = new User("lemon",27);

    List<String> list = new ArrayList<String>();

    list.add("l1");

    list.add("l2");

    user.setList(list);

    Gson g1 = new Gson();

    //使用 new Gson();

    System.out.println(g1.toJson(user)); //{"username":"lemon","age":27,"list":["l1","l2"]}

    //使用 new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();

    Gson g2 = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();

    System.out.println(g2.toJson(user)); //{"username":"lemon"}

      }

    }

    2.使用@SerializedName标签定义属性序列化后的名字

    @Expose

    @SerializedName("name")

    private String username;

    public static void main(String []args){

    User user = new User("lemon",27);

    List<String> list = new ArrayList<String>();

    list.add("l1");

    list.add("l2");

    user.setList(list);

    Gson g1 = new Gson();

    //使用 new Gson();

    //{"name":"lemon","age":27,"list":["l1","l2"]}

    System.out.println(g1.toJson(user)); 

    //使用 new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();

    Gson g2 = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();

    //{"name":"lemon"}

    System.out.println(g2.toJson(user)); 

    }

  • 相关阅读:
    关于2019-nCoV事件中新媒体的作用
    评估移民宇宙计划
    关于2019-nCoV事件,分析自己的焦虑心理
    肺炎阴云仍未散去,今天捡到一个贝壳
    关于新型肺炎,重点是毒性
    提高效率的方法
    《白说》读书笔记
    MIPS下载运行busybox
    camera模组笔记
    求知领域
  • 原文地址:https://www.cnblogs.com/fightzhao/p/4881339.html
Copyright © 2011-2022 走看看