Gson注解之 @Expose
的作用:
控制某个属性是否参与 JSON的序列化 or 反序列化。
代码使用示例:
public class User {
@Expose private String firstName;
@Expose(serialize = false) private String lastName;
@Expose (serialize = false, deserialize = false) private String emailAddress;
private String password;
}
效果说明
- JSON序列化时,即 toJson 时,只会在json中生成 firstName 两个字段。
- JSON反序列化,即 fromJson 时,生成的 Java对象中值会包含 firstName,lastName, 不会包含 emailAddress, password
- transient 修饰符,效果等同于 @Expose(serialize = false, deserialize = false) ,或者 类似 password 不做任何修饰
注意事项
如果想要上述代码中的@Expose
注解生效,==不能通过==
Gson gson = new Gson();
这样的方式去创建 gson 对象。
需要通过
Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnatation().create();
创建出来的 gson对象,调用 toJson, fromJson 方法才会使得上述代码的 @Expose 注解生效。
网友评论