我用来通过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")
跃然一笑
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
添加回答
举报
0/150
提交
取消