java如何在jackson使用注释的反序列化过程中强制执行ACCEPT_SINGLE_VALUE_AS_数组
有没有办法对类中的列表属性使用注释来使用ACCEPT_SINGLE_VALUE_AS_ARRAY
中的Jackson
?我正在使用Spring并得到以下异常
nested exception is com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of java.util.ArrayList out of VALUE_STRING token
假设我的课程如下:
public class MyClass {
private List < String > value;
}
我的JSON结构如下:
案例1:
[{"operator": "in", "value": ["Active"], "property": "status"}]
案例2:
[{"operator": "like", "value": "aba", "property": "desc"}]
我应该使用什么注释让框架知道我希望在反序列化时对这两个案例进行相同的处理
更新: 为了更清晰,我将更新内容移至本文中的答案
# 1 楼答案
可以使用@JsonFormat注释
要处理这个问题,你需要有杰克逊版本^{。您还可以使用其他可用的JsonFormat Features
对于2.6版。x
Initializer Class
李>Bean Configuration
中配置Jackson
这些方法可以解决这个问题,但每个
deserialization
进程都会激活它# 2 楼答案
如果此项目是Spring项目,则可以将此属性放入
application.properties
:spring.jackson.deserialization.UNWRAP_SINGLE_VALUE_ARRAYS=true