我使用Spring Boot
编写了一个api服务,该服务以Google ProtoBuf
格式提供请求。我的要求是,当用户点击我的服务时,接受标题为application-json format
我希望使用JSON
将呈现的原型对象转换为proto-buf-java Format
格式(用于将JSON
个字符串转换为并从proto Objects)。现在发生的是当用户点击application/x-protobuf
格式时,spring使用protobufHTTPMessageConverter
转换为所需格式,但是当用户点击Json格式时,spring boot使用默认JacksonMapper
并且它无法&# 39;无法转换为JsonString
。我是Spring Boot
的新用户,我需要解决方案来配置邮件转换器以提供JSON
格式。
答案 0 :(得分:0)
尝试添加以下课程。假设你打开了AutoScan,SpringBoot应该扫描它。根据您的API请求,默认情况下将对象序列化为JSON,或者只需添加& mediaType = json即可。
@EnableWebMvc
@Configuration
public class CustomConfig extends WebMvcConfigurerAdapter
{
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters)
{
MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();
mappingJackson2HttpMessageConverter.setPrettyPrint(true);
mappingJackson2HttpMessageConverter.getObjectMapper().setSerializationInclusion(JsonInclude.Include.NON_EMPTY);
converters.add(mappingJackson2HttpMessageConverter);
}
@Override
public void configureContentNegotiation(ContentNegotiationConfigurer configurer)
{
configurer.defaultContentType(MediaType.APPLICATION_JSON);
configurer.favorPathExtension(false);
configurer.favorParameter(true);
configurer.ignoreAcceptHeader(true);
configurer.useJaf(false);
configurer.parameterName("mediaType");
configurer.mediaType("json", MediaType.APPLICATION_JSON);
}
}