[alibaba/fastjson]PropertyNamingStrategy对Map无效

2025-10-31 307 views
6

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

回答

5

@nanpingwang ,应该不支持Map,只支持实体对象吧 https://github.com/alibaba/fastjson/wiki/PropertyNamingStrategy_cn

4

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

4

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

1

使用NamingFilter,比如内置的PascalNameFilter

9
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);
            }
        };
3

同问好的实现方式