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

    }

  • 相关阅读:
    Spring,SpringMVC,MyBatis,Hibernate,Servlet的生命周期,jsp有哪些内置对象,Tomcat,Cookie和Session的作用以及区别,oracle,MYSQL等面试题总结
    webpack配置react--ts项目
    防抖(debounce)和节流(throttle)
    js~eventLoop 事件循环
    在Vue 项目中使用echarts
    JS
    ImmuableJS 简单入门用法
    Redux-小案例-加一操作
    Oberver.js
    react-jsx语法
  • 原文地址:https://www.cnblogs.com/fightzhao/p/4881339.html
Copyright © 2020-2023  润新知