1.通过注解指定不需要序列化的字段
在不需要序列化的字段,添加@JSONField(serialize = false)
注解可进行排除。
public class DontSerializeAnnotation {
@JSONField(serialize = false)
private Long id;
private String name;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
/**
* 通过注解指定不需要序列化的字段:@JSONField(serialize = false)
*/
@Test
public void testDontSerializeAnnotation() {
DontSerializeAnnotation guestUser = new DontSerializeAnnotation();
guestUser.setId(2L);
guestUser.setName("guest");
System.out.println(JSON.toJSONString(guestUser));
}
执行结果:
{"name":"guest"}
2.声明为transient的变量不进行序列化
如果被序列化的字段使用transient修饰,则不会被序列化。
public class TransientObject {
private Long id;
private transient String name;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
/**
* 声明为transient的变量不进行序列化
*/
@Test
public void testTransientObject() {
TransientObject guestUser = new TransientObject();
guestUser.setId(2L);
guestUser.setName("guest");
System.out.println(JSON.toJSONString(guestUser));
}
执行结果:
{"id":2}