如何使用注释在jackson的反序列化过程中强制执行A​​CCEPT_SINGLE_VALUE_AS_ARRAY

栏目: Java · 发布时间: 5年前

内容简介:翻译自:https://stackoverflow.com/questions/39041496/how-to-enforce-accept-single-value-as-array-in-jacksons-deserialization-process
有没有办法在类的List属性上使用注释在Jackson中使用ACCEPT_SINGLE_VALUE_AS_ARRAY?我正在使用 Spring

并获得以下异常

嵌套异常是com.fasterxml.jackson.databind.JsonMappingException:无法从VALUE_STRING标记中反序列化java.util.ArrayList的实例

假设我有一个课程如下:

public class MyClass {
.
.
private List<String> value;
.
.
}

我的JSON结构如下:

情况1:

[{"operator": "in", "value": ["Active"], "property": "status"}]

案例2:

[{"operator": "like", "value": "aba", "property": "desc"}]

我应该使用什么注释来让框架知道我希望在反序列化时对这2个案例进行相同的处理

更新:

为了更加清晰,我将更新移到了这篇文章的答案中.

使用 @JsonFormat

注释:

public class MyClass {
.
.
@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
private List<String> value;
.
.
}

你可以检查 here 的其他选项版本

和要求(分钟2.7.0)

对于2.6.x

@Autowired private ObjectMapper mapper;
//.....

mapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true);

将此代码添加到初始化程序类中.

或者您可以在spring的bean配置中直接配置jackson.

这种配置可以解决问题,但每次反序列化都会激活.

翻译自:https://stackoverflow.com/questions/39041496/how-to-enforce-accept-single-value-as-array-in-jacksons-deserialization-process


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Clean Architecture

Clean Architecture

Robert C. Martin / Prentice Hall / 2017-9-20 / USD 34.99

Practical Software Architecture Solutions from the Legendary Robert C. Martin (“Uncle Bob”) By applying universal rules of software architecture, you can dramatically improve developer producti......一起来看看 《Clean Architecture》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

随机密码生成器
随机密码生成器

多种字符组合密码

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具