您好我正在尝试从以下json创建一个对象:
{
"property1": "value1",
"property2": [
{"key1":"value1"},
{"key1":"value2"},
{"key2":"value1"}
]
}
我使用MultiValuedMap的原因是因为属性2中的键可以重复(对于值)。
问题是当我尝试这样的操作时,jackson抛出了一个错误:
@AllArgsConstructor
@NoArgsConstructor
@Data
@Builder
@EqualsAndHashCode
@JsonInclude(JsonInclude.Include.NON_NULL)
public class MyClass {
private String property1;
private List<MultiValuedMap<String, String>> property2;
}
至于控制器是这样的:
@PostMapping(value = "update")
MyClass saveMyClass(@RequestBody @Valid MyClass myClass);
但是当尝试将json发送到我的api时,它会出现以下错误:
异常错误类型:类型定义错误:[简单类型,类org.apache.commons.collections4.多值Map];嵌套的异常是com.fasterxml.jackson.数据绑定.exc。无效定义异常:无法建构org.apache.commons.collections4.MultiValuedMap
的执行严修(不存在建立者,例如预设建构函式):抽象类型需要Map到具体类型,具有自定义反序列化程序,或者包含其他类型信息
1条答案
按热度按时间bnlyeluc1#
为什么不直接使用List〈Map.Entry〈String,String〉〉呢?
这是开箱即用的,如果你真的想使用一个MuliValuedMap,你可以把List转换成一个带有以下代码的Map: