我正在尝试使用带有多态类型的jackson将JSON解析为POJO。
我有以下JSON,我想将其反序列化为POJO。 我已经创建了包装类来解析所有JSON值,但是我遇到了“geometry”和“geometryType”对象的问题。
我为每种类型的几何创建了POJO,我想使用“geometryType”中的值将“几何”中的值解析为不同的Java类,具体取决于“geometryType”的值。例如:如果geometryType ='geometryPolygon',那么我想将“几何”解析为Polygon类。
我知道它可以使用注释@JsonTypeInfo并使用属性为我的POJO选择正确的子类型,但在我的情况下,“type”实际上是在一个不同的对象中,而不是在所有的同一个JSON对象中我在网上看到的其他教程。
任何帮助将不胜感激。
{
"results": [{
"layerId": 3,
"layerName": "Parcels",
"displayFieldName": "LAND_CO",
"value": "0",
"attributes": {
"Feature identifier": "6",
"SHAPE": "Polygon",
"PROPERTY_I": "5006",
"LANDUSE_CO": "0",
"ZONING": "1",
"PARCEL_ID": "6363",
"Res": "Non-Residential",
"Zoning_simple": "Null",
"SHAPE_Length": "3594.570779",
"SHAPE_Area": "112648.196175"
},
"geometryType": "geometryPolygon",
"geometry": {
"rings": [[[-85.802587291351813, 32.394007668298649], .........]]
}
}
]
}
POJO类的示例:
class Polygon extends Geometry { ... }
class Polyline extends Geometry {...}