当前位置: 首页 > 知识库问答 >
问题:

Webclient Jackson:如何设置反序列化将snake_case转换成camelCase?

欧阳德运
2023-03-14

我希望避免在属性前面加@JsonProperty(“property_name”),而只需设置Spring WebClient构建器,将所有snake_case转换为camelCases。

这可能吗?

共有3个答案

寿丰
2023-03-14

您可以遵循这个建议,只为一个型号应用配置。

或者您可以通过适当的属性全局设置:

spring:
  jackson:
    property-naming-strategy: SNAKE_CASE
袁骏祥
2023-03-14

您可以向模型类添加注释:

@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)
public class Model {
  String camelCase; //will be camel_case in json
}
岳正浩
2023-03-14

阅读9.4.3.自定义Jackson ObjectMapper和10.A.4.JSON属性,了解我们可以从配置文件中定义多少选项。在您的情况下,您需要设置:

spring.jackson.property-naming-strategy=SNAKE_CASE

如果您只想为反序列化更改配置,您需要自定义< code>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();
    }
}

参见:

  • 如何自定义SpringWebFlux WebClient JSON反序列化?
 类似资料:
  • 我从Yahoo下载了以下数据集!金融(并做了一些基本的操纵)。我的问题是--如何将时间列转换为数据集,转换为数据集的列?

  • 我想将我的firebase数据对象映射到我的POJO。但是,我的firebase对象属性名是snake case,例如;“user_name”。我想在我的pojo上使用camelCase,例如;“用户名” 我找到了这样一个漂亮的答案,但是,我找不到任何关于snake_case到camelCase映射的示例。 我的波乔; 我使用下面的代码行进行映射。“content”匹配没有问题(有或没有@seri

  • 问题内容: 我用过这种方法 它正在打印“ jsonObject为null”。 “ error:nil”有什么问题吗? 我没有使用任何网址或连接方法。 我有一个json文件,我想在表中显示它。 问题答案: 请尝试以下代码。

  • 问题内容: 如何将String [](数组)转换为Collection,例如ArrayList或HashSet? 问题答案: Arrays.asList()可以在这里解决问题。 要转换为Set,您可以执行以下操作

  • 使用指南 - 数据报告 - 转化分析 - 如何设置转化 1、定义目标 为网站定义一个或多个目标,常见的业务目标如下: 获取客户目标:在线注册、创建账户等; 通过激励措施或改进注册流程的易用性,提高用户注册或者开户的比例。 收入目标:在线订单、付款成功等; 简化结帐过程,清除任何影响收入的障碍;制定相应的策略来提高销量、销售金额或销售频率。 咨询目标:咨询、留言、电话等; 分析用户咨询重点和需求,改

  • 问题内容: 我正在使用大猩猩 websocket,并且正在计划使用json进行序列化/反序列化。 假设我有这样的结构来接收传入的消息: 和 大猩猩提供接收传入的消息。传入的消息可以是Foo或Bar,但是我不能使用和收听其他消息,这很混乱。我想要像javascript 这样的东西。如果接收到Foo,则如何处理传入消息,然后将其存储到结构中;如果接收到Bar,则将其存储到结构中? 我正在解决方案正在使