做网站用的文本编辑器,企业网站建设效果,企业邮箱登陆登录入口官网,mp3网站源码需求 php调用java接口时#xff0c;因为php那边的属性都是下划线风格#xff0c;java这边的属性都是驼峰的风格。配置springmvc的json转换#xff0c;在requestBody的时候#xff08;调用对象的set 方法#xff09;将java属性name映射成下划线形式 和 请求的参数匹配… 需求 php调用java接口时因为php那边的属性都是下划线风格java这边的属性都是驼峰的风格。配置springmvc的json转换在requestBody的时候调用对象的set 方法将java属性name映射成下划线形式 和 请求的参数匹配在responseBody的时候调用对象的get方法将java的属性name也映射成下划线形式。 MappingJackson2HttpMessageConverter配置 mvc:annotation-drivenmvc:message-convertersbean classorg.springframework.http.converter.json.MappingJackson2HttpMessageConverterproperty nameobjectMapperbean classcom.fasterxml.jackson.databind.ObjectMapper!-- 处理responseBody 里面日期类型 --!-- property namedateFormatbean classjava.text.SimpleDateFormatconstructor-arg typejava.lang.String valueyyyy-MM-dd HH:mm:ss //bean/property --!-- 为null字段时不显示 --property nameserializationInclusionvalue typecom.fasterxml.jackson.annotation.JsonInclude.IncludeNON_NULL/value/propertyproperty namepropertyNamingStrategy!--bean classcom.xxx.serializer.MyPropertyNamingStrategyBase /--bean classcom.fasterxml.jackson.databind.PropertyNamingStrategy.LowerCaseWithUnderscoresStrategy //property/bean/propertyproperty namesupportedMediaTypeslistvaluetext/html;charsetUTF-8/valuevalueapplication/json; charsetUTF-8/value/list/property/bean/mvc:message-converters/mvc:annotation-driven 自定义PropertyNamingStrategy import com.fasterxml.jackson.databind.PropertyNamingStrategy;
import com.fasterxml.jackson.databind.cfg.MapperConfig;
import com.fasterxml.jackson.databind.introspect.AnnotatedField;
import com.fasterxml.jackson.databind.introspect.AnnotatedMethod;
import com.fasterxml.jackson.databind.introspect.AnnotatedParameter;
import org.apache.commons.lang3.StringUtils;/*** Created by hujunzheng on 2017/6/7.*/
public class MyPropertyNamingStrategyBase extends PropertyNamingStrategy {Overridepublic String nameForField(MapperConfig? config, AnnotatedField field, String defaultName) {return defaultName;}Overridepublic String nameForGetterMethod(MapperConfig? config, AnnotatedMethod method, String defaultName) {return underscoreName(defaultName);}Overridepublic String nameForSetterMethod(MapperConfig? config, AnnotatedMethod method, String defaultName) {return underscoreName(defaultName);}Overridepublic String nameForConstructorParameter(MapperConfig? config, AnnotatedParameter ctorParam,String defaultName) {return defaultName;}private String underscoreName(String name) {if (StringUtils.isEmpty(name)) {return ;}StringBuilder result new StringBuilder();result.append(name.substring(0, 1).toLowerCase());for (int i 1; i name.length(); i) {String s name.substring(i, i 1);String slc s.toLowerCase();if (!(s.equals(slc))) {result.append(_).append(slc);} else {result.append(s);}}return result.toString();}private String withoutUnderscoreName(String name) {if (StringUtils.isEmpty(name)) {return ;}StringBuilder result new StringBuilder();result.append(name.substring(0, 1).toLowerCase());boolean underscore false;for (int i 1; i name.length(); i) {String s name.substring(i, i 1);if (_.equals(s)) {underscore true;continue;} else {if (underscore) s s.toUpperCase();underscore false;}result.append(s);}return result.toString();}
} 转载于:https://www.cnblogs.com/hujunzheng/p/6959182.html