来自Facebook的样本JSON数据
{
"1111111" : {
"home" : false,
"activities" : "some value"
},
"2222222" : {
"home" : false,
"activities" : "some value again"
}
}
public class Profile{
private boolean home;
private String activities;
// generated setter getter
public static void main(String[] args) throws JsonParseException, JsonMappingException, IOException {
ObjectMapper mapper = new ObjectMapper();
Profile mainProfile = mapper.readValue(new File("data.json"), Profile.class);
System.out.println(mainProfile.getActivities().size());
}
}
运行上面的文件会产生此错误。
Unrecognized field "1111111" (Class com.analysis.structure.Profile), not marked as ignorable
我面临的问题是如何将“1111111”值映射到类中的变量?如果我使用@JsonIgnoreProperties(ignoreUnknown = true),它将完全忽略所有josn数据,因为第一个数据没有任何要映射的标记。我应该如何使用Jackson JSON将这种类型的json数据映射到Java?
答案 0 :(得分:1)
这不会干净地映射到POJO,所以也许你应该将它绑定到Map
,其中key是String
类型,并且值为某些POJO类型?