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)); 

    }

  • 相关阅读:
    【Go】windows下搭建go语言编译环境
    【java回调】同步/异步回调机制的原理和使用方法
    【tomcat】tomcat远程调试
    【tomcat】获取访问者真实IP
    【深度学习学习记录】之一:开篇闲扯一些话
    【java】线程安全的整型类AtomicInteger
    【OpenStack】源码级深入了解删除虚拟机操作
    【Maven】maven的常用命令以及搭建maven私人仓库
    素 数 (第三届省赛)
    房间安排(第三届省赛)
  • 原文地址:https://www.cnblogs.com/fightzhao/p/4881339.html
Copyright © 2011-2022 走看看