gson的@Expose注解和@SerializedName注解

转载 2016年05月31日 12:06:58
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)); 

}


举报

相关文章推荐

通透Gson@Expose注解、@SerializedName、解析json数据

在讲如何解析数据之前,先描述一下gson中的两个注解@Expose和@SerializedName。 @Expose注解的作用:区分实体中不想被序列化的属性,其自身包含两个属性deserialize...

gson的@Expose注解和@SerializedName注解

gson的@Expose注解和@SerializedName注解

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

Android中Gson解析json数据使用@SerializedName注解与java对象不匹配的字段

转载自http://www.loongwind.com/archives/125.html 今天在使用Gson解析json时,碰到这个@SerializedName,查了下资料,觉得这篇说的很好! ...

google注解@SerializedName的使用说明

刚才在看一个安卓demo的时候突然看到一段代码然后瞬间蒙逼了。 @SerializedName 到底是什么鬼呢?然后百度了一下,终于搞明白了,这里记录一下,免得以后就忘记了。 使用G...

Gson之常用注解

本篇我们来说一下Gson中常用的注解@SerializedName前面Java类中的属性和Json中的key都是一样的,但是总会有一些情况下,你想指定不同的名字 我们还以之前的Student类为例:...
  • pngfi
  • pngfi
  • 2017-03-14 21:28
  • 97

记录:activeandroid数据库工具注解字段,在android6.0里Gson解析确出错了

在使用activeandroid数据可工具的时候遇到在android6.0一下gson解析是正确的,但是拿到android6.0的机子上就报错了。 一开始在真机(荣耀6)上报出的错误的是乱七八糟的;用...

Gson注解和GsonBuilder

请看下面的例子吧: 实体类: [java] view plaincopyprint? import java.util.Date; import com.google.gson.annot...

详解Gson使用(三)使用注解

项目地址: Github:https://github.com/smileysx/GsonTest Oschina:https://git.oschina.net/ysx_xx/GsonText ...

Gson之注解

注解是Gson的强大存在之一,为实际情况解决了很多问题。 1. GsonBuilder         之前重建Gson实例通过newGson(),时会创建一个带有默认配置 选项的Gson实例。如果...

学会使用 Gson @SerializedName

平常使用的有关 Json 转换的库中 Gson 和 fastJson 库用的最多,今天来说说 Gson 在 SimpleNews.io 项目中的使用,对了本次使用的版本为 gson-gson-2.2....
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)