[英]Object Mapper deserializing map array
{
"name" : "test",
"info": [
{
"key1": "test",
"key2": "blaa",
"key3": "yadayada"
},
{
"key4": "test1",
"key5": "blaa1",
"key6": "yadayada1"
}
],
}
我有这个班的反序列化
public class Account{
private String name;
private Map<String,String>[] info;
}
由于某种原因, info
不会反序列化...即使使用List<Map<String,String>>
也不总是反序列化,并且name
始终为null
(即使用ObjectMapper
)
编码
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.disable( DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES);
results = objectMapper.readValue(responseBody.getEntity().getContent(), Account.class);
谢谢
问题在于您发布的JSON模式末尾带有错误的逗号 )。 尝试以下
假设responseBody.getEntity().getContent()
是您发布的JSON
Account.java
或更具体
private String name;
private Map<String,String>[] info;
//getters && setters && default constructor
反序列化方法
Account account = null;
ObjectMapper objectMapper = new ObjectMapper();
try {
account = objectMapper.readValue(responseBody.getEntity().getContent(), Account.class);
} catch (IOException e) {
e.printStackTrace();
}
这是错杂的事情。
Account
) name
字段已反序列化,我想这实际上意味着确实存在一些可访问的设置器,但您可能还没有发布它? info
静静地失败序列化,因为你很可能ObjectMapper
已经配置了DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES
为false
看到- 文档 。 List<Map<String, String>>
作为info
,或保留Map<String, String>[]
-与您的问题无关。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.