Я пытаюсь десериализовать GeoJSON в соответствующие POJO. У меня есть Java-объект для каждого типа GeoJSON (Point, LineString, Polygon и т. Д.). Я бы хотел, чтобы Jackson использовал поле типа GeoJSON Entity для использования соответствующего класса Java. Например позволяет сказать, что у меня есть следующий GeoJSON Entities:Deserialize GeoJSON with Jackson Parser
{ "type": "Point", "coordinates": [100.0, 0.0] }
{ "type": "LineString", "coordinates": [ [100.0, 0.0], [101.0, 1.0] ] }
{
"type": "Polygon", "coordinates": [
[ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0] ],
[ [100.2, 0.2], [100.8, 0.2], [100.8, 0.8], [100.2, 0.8], [100.2, 0.2] ]
]
}
Для первого объекта Джексон должен использовать класс точки и должна десериализацией поля координат соответственно. Для второго объекта Джексон должен использовать объект LineString, а для третьего - объект многоугольника.
Я знаю, что вы можете писать пользовательские десериализаторы в Джексоне, но я видел только те, которые для полей одного объекта. В моем случае я думаю, что мне нужно написать десериализатор для всей GeoJSON Entity, потому что в зависимости от поля типа изменяется целое представление.
Возможно, кто-то может дать мне подсказку о том, что делать в этом случае? Возможно, есть какой-то умный трюк, о котором я не читал?
Спасибо.
Пример: http://stackoverflow.com/questions/10329706/json-deserialization-into-another-class-hierarchy-using-jackson/10336625#10336625 –
Танки много! Это именно то, что я искал ... ты действительно помог мне здесь. – evermean