Вероятно, немного похож на это: deserializing json with arrays, а также я вслед за этим: Jackson multiple objects and huge json filesDeserialising массивы JSON в пределах объектов в пределах других объектов
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());
}
Это прекрасно работает на Перебор объектов в файле, и я ок n получить любое значение, которое мне нравится от объекта, в котором я находится. Работает нормально, но массив просто возвращается как объект ArrayList. Поэтому я должен сделать что-то вроде:
ArrayList z = (ArrayList) it.next().get("z");
for (Object o : z) {
// Run mapper on o.
// Do stuff.
}
Я уверен, что это сработает, но для меня это кажется немного грязным. Есть ли способ лучше?
Ох. Я уже понял это. Я сам отвечу через 8 часов, когда мне позволено: x Но суть в том, что первый запуск ObjectMapper уже делает все для меня, и мне просто нужно сказать java, что это карта, а не объект, и все это отличный. –