欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 新车 > Jackson和fastjson解决序列化时字段属性大小写改变的问题

Jackson和fastjson解决序列化时字段属性大小写改变的问题

2024/10/25 12:29:36 来源:https://blog.csdn.net/qq_16733389/article/details/134048279  浏览:    关键词:Jackson和fastjson解决序列化时字段属性大小写改变的问题

在部分特殊场景下,我们可能会把实体的字段属性改成全部大写,但是在返回前端时,字段会被序列化成小写
比如我们有一个这个类属性都是大写:
在这里插入图片描述

后端接口是这样的
在这里插入图片描述
然后我们请求后,会发现我们的字段被变成全部小写的。
在这里插入图片描述
这个就可能会导致前端字段和后端字段大小写不一致的问题。
因此为了规避这个问题我们可以改变序列化规则。
spring默认使用的是jackson,我们就先说jackson 的解决方法。

Jackson

方法一,我们可以使用@JsonProperty

在这里插入图片描述
在这里插入图片描述
方法二:

我们可以重写jackson消息转换器中的序列化策略

package com.hosptial.config;import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;@Configuration
public class JsonConfig {@Beanpublic HttpMessageConverters jacksonHttpMessageConverters() {// 创建Jackson消息转换器MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();// 创建Jackson配置对象ObjectMapper objectMapper = new ObjectMapper();// 设置序列化规则
//        objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);objectMapper.setPropertyNamingStrategy(new CustomPropertyStrategy());// 设置Jackson配置converter.setObjectMapper(objectMapper);// 返回HttpMessageConverters对象return new HttpMessageConverters(converter);}
}
package com.hosptial.config;import com.fasterxml.jackson.databind.PropertyNamingStrategy;import java.util.Locale;public class CustomPropertyStrategy extends PropertyNamingStrategy.PropertyNamingStrategyBase {public String translate(String input) {return input.toUpperCase(Locale.ROOT);}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com