有条件的杰克逊json策略吗?
|
我需要使用Jackson库反序列化GeoJSON JSON对象。在这个json对象中,有一些适用的地方:
如果有
\"type\" : \"name\"
以下json对象是一种类型。举例来说:
\"properties\": {
\"name\": \"urn:ogc:def:crs:OGC:1.3:CRS84\"
}
另一方面,如果有
\"type\": \"link\"
以下json对象是另一种类型。举例来说:
\"properties\": {
\"href\": \"http://example.com/crs/42\",
\"type\": \"proj4\"
}
现在,我有一个PropertiesPOJO,其中包含:
private String name;
private String href;
private String type;
当前的解决方案要求检查对象的类型,因此我们知道我们要考虑的PropertiesPOJO的哪些部分。这不是一个好习惯。我宁愿使用自定义反序列化程序来执行此操作,该反序列化程序将直接反序列化为NamePropertiesPOJO或LinkPropertiesPOJO。我的一个想法是
@JsonDeserialize(using=PropertiesDeserializer.class)
@JsonProperty(\"properties\")
NamePropertiesPOJO namePropertiesPOJO = null;
@JsonDeserialize(using=PropertiesDeserializer.class)
@JsonProperty(\"properties\")
LinkPropertiesPOJO linkPropertiesPOJO = null;
但是我得到了
发生JsonMappingException:多个
代表财产的领域
\“属性\”:
那么,还有其他方法可以使用杰克逊的注解来实现更多面向对象吗?
亲切的问候,
暴君
没有找到相关结果
已邀请:
3 个回复
漂汀拦
苦诫
然后只需从地图上读取内容即可。 同样,当您只显示没有注释的POJO时,Jackson也应该 能够自行填写正确的变量。在二传手中,您可以设置一个标志,它是1型或2型,因此可以执行
姬第柔炒