开发者社区> 问答> 正文

fastjson2 枚举转换

springboot项目下如果使用fastjson2。比如用户的性别,数据库是0,1,加入返回前端需要的是男和女,可以通过什么办法,在不改变原有bean的情况下,通过注解把性别 序列化。文档上没有找到枚举转换的示例。

原提问者GitHub用户yancong303

展开
收起
后端老大 2023-04-21 11:10:03 344 0
1 条回答
写回答
取消 提交回答
  • 可以用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

    2023-04-21 14:08:42
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载