如何将两个不同的响应从REST API映射到两个不同的POJO

时间:2018-07-25 11:26:26

标签: java json jackson

我有一个用例,其中服务针对同一REST API调用返回两个不同的响应。只有响应值不同,但是键相同。请参考下面的示例回复,

响应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问题,但是可以解决属性值是否不同的问题。有人可以照亮它吗?

1 个答案:

答案 0 :(得分:0)

谢谢@Lino。您的建议帮助我找到了解决问题的方法。我来自C++背景,但现在正在与JAVA合作。我意识到Objectclass层次结构的根,即它是所有类的superclass。因此,我针对上述问题的解决方案如下:

public class Polygon {

    private data boundingPolygon;

    public static class data {
        private String type;
        private Object coordinates;
    }
}

我已经测试过了,对我有用。