【发布时间】:2018-03-03 18:49:23
【问题描述】:
我正在尝试使用多态类型的杰克逊将 JSON 解析为 POJO。
我有以下 JSON,我想将其反序列化为 POJO。 我创建了包装类来解析所有 JSON 值,但我遇到了“geometry”和“geometryType”对象的问题。
我为每种几何类型创建了 POJO,我想使用“geometryType”中的值来根据“geometryType”的值将“geometry”中的值解析为不同的 Java 类。例如:如果 geometryType = 'geometryPolygon' 那么我想将“几何”解析为 Polygon 类。
我知道它可以通过注释 @JsonTypeInfo 并使用属性为我的 POJO 选择正确的子类型,但在我的情况下,“类型”实际上是在不同的对象中,而不是在同一个 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 {...}
【问题讨论】:
标签: json jackson pojo json-deserialization