springboot jackjson駝峯轉下劃線

有以下幾種方法java

一、經過ObjectMapper設置git

mapper.setPropertyNamingStrategy(com.fasterxml.jackson.databind.PropertyNamingStrategy.SNAKE_CASE);
mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);

二、經過在application.properties增長以下配置github

spring.jackson.property-naming-strategy=CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORESspring

便可json

注意事項,當開啓@EnableSwagger2註解時候,會報jackjson異常,查看是swagger使用的api比較舊,不支持api

java.lang.NoSuchMethodException: com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.<init>(com.fasterxml.jackson.databind.PropertyName, com.fasterxml.jackson.databind.AnnotationIntrospector, boolean)
	at java.lang.Class.getConstructor0(Class.java:3082)
	at java.lang.Class.getConstructor(Class.java:1825)
	at springfox.documentation.schema.property.PojoPropertyBuilderFactory.constructorWithParams(PojoPropertyBuilderFactory.java:105)
	at springfox.documentation.schema.property.PojoPropertyBuilderFactory.jackson26Instance(PojoPropertyBuilderFactory.java:89)
	at springfox.documentation.schema.property.PojoPropertyBuilderFactory.create(PojoPropertyBuilderFactory.java:42)
	at springfox.documentation.schema.property.BeanPropertyDefinitions.getName(BeanPropertyDefinitions.java:69)
	at springfox.documentation.schema.property.BeanPropertyDefinitions.access$000(BeanPropertyDefinitions.java:28)
	at springfox.documentation.schema.property.BeanPropertyDefinitions$2.apply(BeanPropertyDefinitions.java:58)
	at springfox.documentation.schema.property.BeanPropertyDefinitions$2.apply(BeanPropertyDefinitions.java:55)
	at com.google.common.base.Present.transform(Present.java:77)
	at springfox.documentation.schema.property.ObjectMapperBeanPropertyNamingStrategy.nameForSerialization(ObjectMapperBeanPropertyNamingStrategy.java:56)
	at springfox.documentation.schema.property.BeanPropertyDefinitions.name(BeanPropertyDefinitions.java:46)
	at springfox.documentation.schema.property.OptimizedModelPropertiesProvider.beanModelProperty(OptimizedModelPropertiesProvider.java:281)
	at springfox.documentation.schema.property.OptimizedModelPropertiesProvider.access$200(OptimizedModelPropertiesProvider.java:79)
	at springfox.documentation.schema.property.OptimizedModelPropertiesProvider$2.apply(OptimizedModelPropertiesProvider.java:163)
	at springfox.documentation.schema.property.OptimizedModelPropertiesProvider$2.apply(OptimizedModelPropertiesProvider.java:155)

相似問題:https://groups.google.com/forum/#!msg/swagger-swaggersocket/AUvwW1a03mQ/ezSxddEZAgAJapp

三、採用在實體增長註解實現socket

//實現駝峯轉下劃線
@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)
public class BaseResultVO {
}

實體繼承該類便可。如此不用每一個類的字段都註明@jsonproperty註解ide

參考資料:Jackson 在 Spring Boot 中的使用小結 1jsonp

相關文章
相關標籤/搜索