为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Spring RestTemplate 忽略使用 @JsonProperty

使用 Spring RestTemplate 忽略使用 @JsonProperty

守着一只汪 2022-08-03 10:32:02
我用来通过Spring's序列化来自JSON的数据。@JsonPropertyRestTemplateexchange@JsonProperty("ip_address")public String ipAddress;@JsonProperty("port")public Integer port;我需要这个属性来识别属性名称的大写和小写版本,即应该识别“ip_address”和“IP_ADDRESS”设置。@JsonProperty我尝试了以下方法,但没有一个起作用:@JsonFormat(with=JsonFormat.Feature.ACCEPT_CASE_INSENSITIVE_PROPERTIES)在类级别应用不适用于 GitHub 中报告的现有问题。应用于模型类中的每个属性时也不起作用。在对象映射器 bean 上使用MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES。这个使用 ObjectMapper 和 RestTemplate 的示例也不起作用,即使使用与之前在项目上的示例组合代码也是如此。这三个都只是具有各自属性的值,因为我为模板禁用了未知属性(也称为不同字母大小写)的错误。null
查看完整描述

2 回答

?
青春有我

TA贡献1784条经验 获得超8个赞

您可以告诉 Jackson 将所有属性名称转换为例如 SNAKE_CASE 变体,并相应地设置:@JsonProperty

例:

在弹簧引导中设置应用程序的属性。属性

spring.jackson.property-naming-strategy=SNAKE_CASE

或者,您可以仅为单个类启用它,并使用以下方式对类进行注释:

@JsonNaming(PropertyNamingStrategy.SNAKE_CASE.class)

,然后设置@JsonProperty:

@JsonProperty(vale="ip_address")


查看完整回答
反对 回复 2022-08-03
?
跃然一笑

TA贡献1826条经验 获得超6个赞

Kishore Diyyana:

对于要忽略 JSON 属性名称的案例的 Spring Boot 应用:

步骤1:确保您的POJO / Domain / Model类具有具有相应参数的构造函数,删除任何零arg构造函数。步骤 2:添加 Jackson lib 作为依赖项 Ex:

<dependency>
            <groupId>com.fasterxml.jackson.module</groupId>
            <artifactId>jackson-module-jaxb-annotations</artifactId>
            <version>2.6.5</version>
        </dependency>

步骤 3:在 application.properties 文件中启用,如下所示 spring.jackson.mapper.accept_case_insensitive_properties=true


查看完整回答
反对 回复 2022-08-03
  • 2 回答
  • 0 关注
  • 161 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信