可能有点类似于此:deserializing json with arrays而且我也是这样做的:Jackson multiple objects and huge json files
我拥有的json非常大,所以简化它就像这样:
{ "foo"="bar", "x"="y", "z"=[{"stuff"="stuff"}, {"more"="stuff"}, ...], ... }
我的代码如下:
for (Iterator<Map> it = new ObjectMapper().readValues(new JsonFactory().createJsonParser(in), Map.class); it.hasNext();) {
doSomethingWith(it.next());
}
这很好地迭代文件中的对象,我可以从我所在的对象中获得任何我喜欢的值。工作正常,但数组只是作为对象的ArrayList返回。所以我必须做类似的事情:
ArrayList z = (ArrayList) it.next().get("z");
for (Object o : z) {
// Run mapper on o.
// Do stuff.
}
我确信这会奏效,但对我来说似乎有些混乱。还有更好的方法吗?
答案 0 :(得分:0)
哦,哎呀。看起来像ObjectMapper的第一次运行为我做了一切。
所以我可以改变我的代码:
ArrayList<Map> z = (ArrayList) it.next().get("z");
for (Map m : z) {
// Run mapper on o.
doSomethingWith(m.get("stuff");
}
一切都很出色。