【发布时间】:2018-07-25 11:26:26
【问题描述】:
我有一个用例,其中服务为同一个 REST API 调用返回两个不同的响应。只是响应值不同,但key是一样的。请参考下面的示例回复,
响应 1
{
"Polygon": {
"type": "polygon",
"coordinates": [
[
[
[
-128.419935,
31.761895
],
[
88.53,
87.24
]
]
]
]
}
}
响应 2
{
"Polygon": {
"type": "MultiPolygon",
"coordinates": [
[
[
[
-118.419935,
33.761895
],
[
89.53,
86.24
]
]
]
]
}
}
如果我们仔细阅读响应,那么我们可以理解这两个响应只是值(即坐标)不同。坐标是List 的两个不同嵌套级别。所以我不确定我应该如何映射响应。我正在使用Jackson 来映射响应。
我确实看过这个SO 问题,但如果属性值不同,则可以解决。有人可以通过一些灯光就可以了。
【问题讨论】:
-
这是无效的 json。
-
你试过抽象吗? REST API 可以返回像“Polygon”这样的对象,它是一个抽象超类。然后有两个孩子“MultiPolygon”和“SinglePolygon”,实现了具体的行为。
-
将方法的返回类型更改为
Object,然后返回第一个或第二个。 TBH 我有点不确定你在问什么