{
"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
正在工作
(我正在使用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();
}
关于java - 对象映射器反序列化映射数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57310650/