springboot项目下如果使用fastjson2。比如用户的性别,数据库是0,1,加入返回前端需要的是男和女,可以通过什么办法,在不改变原有bean的情况下,通过注解把性别 序列化。文档上没有找到枚举转换的示例。
原提问者GitHub用户yancong303
可以用ValueFilter,比如
import com.alibaba.fastjson2.filter.ValueFilter;
@Test public void test() { Bean bean = new Bean(); bean.type = Type.Big;
ValueFilter valueFilter = (Object object, String name, Object value) -> {
if (value instanceof Type) {
switch ((Type) value) {
case Big:
return "大";
case Small:
return "小";
default:
break;
}
}
return value;
};
String json = JSON.toJSONString(bean, valueFilter);
assertEquals("{\"type\":\"大\"}", json);
}
public enum Type { Big(101), Small(102);
public final int code;
Type(int code) {
this.code = code;
}
}
public static class Bean { public Type type; }
原回答者GitHub用户wenshao
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。