{
"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);
谢谢
答案 0 :(得分:1)
问题出在以下事实上:您发布的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();
}
答案 1 :(得分:0)
这是错杂的混合体。
Account
)name
字段已反序列化,我认为这实际上意味着存在一些可访问的设置器,但您可能没有发布它?info
静默无法序列化,则可能是因为您的ObjectMapper
已被DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES
配置为false
-请参见WorksheetFunction.EoMonth method。List<Map<String, String>>
使用info
,也可以保留Map<String, String>[]
-与您的问题无关。