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

    }

  • 相关阅读:
    nodejs安装express及ejs模板
    nodejs开启服务器
    php 汉字转拼音
    使PHP像js一样链式写法
    apache出现\xef\xbb\xbf
    更改CI自定义类构造函数的传参方式
    DEV ComBoxEdit实现模糊检索数据
    微软一站式示例代码库(中文版)20110924版本, 新添加ASP.NET, Windows Base, Silverlight, WinForm等20个Sample
    Windows Azure 系列分享一:开始基于Windows Azure的开发与部署所需的概念和软件
    Windows Azure 系列分享二: Worker Role & Web Role
  • 原文地址:https://www.cnblogs.com/fightzhao/p/4881339.html
Copyright © 2011-2022 走看看