我使用@JsonProperty
通过SpringRestTemplate
的exchange
序列化JSON中的数据。
@JsonProperty("ip_address")
public String ipAddress;
@JsonProperty("port")
public Integer port;
我需要此属性来识别属性名称的大写和小写版本,即应该识别在@JsonProperty
中设置的“ip_address”和“IP_ADDRESS”。
我尝试了以下方法,但都不起作用:
@JsonFormat(with=JsonFormat.Feature.ACCEPT_CASE_INSENSITIVE_PROPERTIES)
在类级别上应用时不适用于GitHub中报告的existing issue。当应用于模型类中的每个属性时也不适用。- 是的。
- This example using
ObjectMapper
andRestTemplate
也不起作用,甚至与组合代码与前面的项目的例子。
这三个模板的属性都只有null
值,因为我禁用了模板的未知属性错误(也就是不同的字母大小写)。
3条答案
按热度按时间4ngedf3f1#
您可以告诉Jackson将所有属性名称转换为SNAKE_CASE等变量,并相应地设置
@JsonProperty
:示例:
在Spring Boot 时在www.example.com中设置该属性application.properties
或者您可以只为单个类启用它,并使用以下内容对类进行注解:
然后设置@JsonProperty:
vaqhlq812#
我能够在不更改我的原始pojo class @JsonProperty配置的情况下使其工作。
对象Map器Map器= new对象Map器();如果是,则将该属性设置为“是”。
68bkxrlz3#
对于忽略JSON属性名称大小写的Sping Boot 应用程序:第1步:确保POJO/Domain/Model类有一个带参数的构造函数,并删除任何零参数构造函数。第2步:将Jacksonlib添加为依赖项Ex:
步骤3:在www.example.com文件中启用application.properties,如下所示spring.Jackson.mapper.accept_case_sensitive_properties=true