Spring-Boot 1.4.2引用权利要求:
HTTP spring.http.converters.preferred-json-mapper=jackson #用于
消息转换的首选JSON映射器。设置为" Gson“以强制使用Gson
我们做到了。
我们为preferred-json-mapper.
但杰克逊还是被利用了。
最后,我们设法强制Spring-Boot在排除了Maven中的所有传递依赖之后使用Gson,这已经向Jackson指出了。
现在的问题是。这是强制Spring-Boot使用Gson而不是Jackson的唯一方法吗?我们真的需要排除杰克逊所指出的所有传递依赖吗?首选-json-mapper设置还不够吗?
发布于 2016-11-29 20:11:34
在Spring Boot使用的旧*.xml配置的一部分中,我们使用了<mvc:annotation-driven/>。
它导致第二次使用默认转换器创建RequestMappingHandlerAdapter,而不使用GsonHttpMessageConverter。
发布于 2018-01-26 18:43:07
好吧,WebMvcConfigurerAdapter已经被弃用了。从Spring5.0开始,可以这样做:
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Bean
public Gson gson() {
GsonBuilder b = new GsonBuilder();
b.registerTypeAdapterFactory(HibernateProxyTypeAdapter.FACTORY);
b.registerTypeAdapterFactory(DateTypeAdapter.FACTORY);
b.registerTypeAdapterFactory(TimestampTypeAdapter.FACTORY);
b.registerTypeAdapterFactory(LocalDateTypeAdapter.FACTORY);
b.registerTypeAdapterFactory(LocalDateTimeTypeAdapter.FACTORY);
return b.create();
}
@Override
public void configureMessageConverters(
List<HttpMessageConverter<?>> converters) {
StringHttpMessageConverter stringConverter = new StringHttpMessageConverter();
stringConverter.setWriteAcceptCharset(false);
stringConverter.setSupportedMediaTypes(Collections
.singletonList(MediaType.TEXT_PLAIN));
converters.add(stringConverter);
converters.add(new ByteArrayHttpMessageConverter());
converters.add(new SourceHttpMessageConverter<>());
GsonHttpMessageConverter gsonHttpMessageConverter = new GsonHttpMessageConverter();
gsonHttpMessageConverter.setGson(gson());
gsonHttpMessageConverter.setSupportedMediaTypes(Arrays
.asList(MediaType.APPLICATION_JSON));
converters.add(gsonHttpMessageConverter);
}
}发布于 2019-07-26 23:09:30
F.e.1)添加其他json工件,如果使用maven和名为gson的google json
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>${latestGsonVersion}</version>
</dependency>2)设置
spring.http.converters.preferred-json-mapper=gson3)例如,在代码中使用它
@Autowired private Gson gson;还有其他的:杰克逊图书馆,谷歌-Gson图书馆,JSON-lib,Flexjson,json-io,genson,JSONiJ图书馆。
https://stackoverflow.com/questions/40786366
复制相似问题