杰克逊JSON映射Facebook数据

时间:2012-09-08 10:31:39

标签: java jackson

来自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?

1 个答案:

答案 0 :(得分:1)

这不会干净地映射到POJO,所以也许你应该将它绑定到Map,其中key是String类型,并且值为某些POJO类型?