fastjson PropertyNamingStrategy对Map无效

wlzqhblo  于 2021-11-27  发布在  Java
关注(0)|答案(5)|浏览(521)

PropertyNamingStrategy.SnakeCase对Map进行json序列化时不生效
希望提供支持或者通过其他设置方式达成此目的

tcbh2hod

tcbh2hod2#

但是有这种需求应用场景啊, 希望能支持或者提供别的设置方式来支持

ebdffaop

ebdffaop3#

@nanpingwang 目前你可以自定义序列化方式来实现。

rekjcdws

rekjcdws4#

使用NamingFilter,比如内置的PascalNameFilter

lzfw57am

lzfw57am5#

FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter(){
            @Override
            protected void writeInternal(Object object, HttpOutputMessage outputMessage) throws IOException, HttpMessageNotWritableException {
                if (object instanceof ReturnData) {
                    // 先转为json字符串,在解析为jsonObject对象,有些微性能影响,但是为了能够将Map中的数据的key值也转为蛇形命名
                    object = JSON.toJSONString(object, new NameFilter() {
                        @Override
                        public String process(Object object, String name, Object value) {
                            return humpToLine(name);
                        }
                    });
                    object = JSON.parseObject(object.toString());
                } else if (object instanceof Json) {
                    object = handleSwaggerWebJson(object);
                }
                super.writeInternal(object, outputMessage);
            }
        };

相关问题