bpe*_*ira 2 java jackson spring-webclient
我想避免必须为我的属性加上前缀@JsonProperty("property_name"),而只是设置 Spring WebClient 构建器以将所有 snake_cases 转换为 camelCases。
那可能吗?
阅读9.4.3。自定义 Jackson ObjectMapper和10.A.4。JSON 属性,以了解我们可以从配置文件中定义多少个选项。在您的情况下,您需要设置:
spring.jackson.property-naming-strategy=SNAKE_CASE
Run Code Online (Sandbox Code Playgroud)
如果您只想为反序列化更改配置,则需要自定义WebClient创建方式。
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.PropertyNamingStrategy;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.codec.json.Jackson2JsonDecoder;
import org.springframework.web.reactive.function.client.ExchangeStrategies;
import org.springframework.web.reactive.function.client.WebClient;
@Configuration
public class WebClientConfiguration {
@Bean
public WebClient webClient(ObjectMapper baseConfig) {
ObjectMapper newMapper = baseConfig.copy();
newMapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE);
ExchangeStrategies exchangeStrategies = ExchangeStrategies.builder()
.codecs(configurer ->
configurer.defaultCodecs().jackson2JsonDecoder(new Jackson2JsonDecoder(newMapper)))
.build();
return WebClient.builder()
.baseUrl("http://localhost:8080")
.exchangeStrategies(exchangeStrategies)
.build();
}
}
Run Code Online (Sandbox Code Playgroud)
看:
| 归档时间: |
|
| 查看次数: |
3652 次 |
| 最近记录: |