网站在哪里设置关键词,网站建设发展制度,成都网站建设公司优势,网站换域名seo在部分特殊场景下#xff0c;我们可能会把实体的字段属性改成全部大写#xff0c;但是在返回前端时#xff0c;字段会被序列化成小写。 比如我们有一个这个类属性都是大写#xff1a;
后端接口是这样的 然后我们请求后#xff0c;会发现我们的字段被变成全部小写的。 …在部分特殊场景下我们可能会把实体的字段属性改成全部大写但是在返回前端时字段会被序列化成小写。 比如我们有一个这个类属性都是大写
后端接口是这样的 然后我们请求后会发现我们的字段被变成全部小写的。 这个就可能会导致前端字段和后端字段大小写不一致的问题。 因此为了规避这个问题我们可以改变序列化规则。 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);}
}