fastjson 序列化枚举指定属性
时间: 2023-11-03 18:04:20 浏览: 62
在Fastjson中,可以使用@JSONField注解来指定序列化和反序列化时使用的属性,包括枚举类型的属性。例如:
```java
public enum Gender {
MALE(1, "男"),
FEMALE(2, "女");
private int code;
private String desc;
Gender(int code, String desc) {
this.code = code;
this.desc = desc;
}
public int getCode() {
return code;
}
public String getDesc() {
return desc;
}
@JSONField(serialize = false)
public String getName() {
return this.name();
}
}
```
在上面的例子中,通过@JSONField(serialize = false)注解指定了getName方法不参与序列化,因此在将Gender类型转换为JSON格式的数据时,不会包含getName方法的返回值。如果需要包含getName方法的返回值,可以将@JSONField注解的serialize属性设置为true。例如:
```java
public enum Gender {
MALE(1, "男"),
FEMALE(2, "女");
private int code;
private String desc;
Gender(int code, String desc) {
this.code = code;
this.desc = desc;
}
public int getCode() {
return code;
}
public String getDesc() {
return desc;
}
@JSONField(serialize = true)
public String getName() {
return this.name();
}
}
```
在上面的例子中,将@JSONField注解的serialize属性设置为true,表示getName方法参与序列化。在将Gender类型转换为JSON格式的数据时,会包含getName方法的返回值。