自定义REST API响应

时间:2018-05-30 05:31:35

标签: java rest jackson2

我想以下面的格式发送数据,因为前端希望数据采用这种格式

[
     [
      {
        "data": [
          [
            "x1-m1",
            128650.3
          ],
          [
            "x2-m2",
            19589.033
          ]
        ]

      }
    ],
    [
      {
        "data": [
          [
            "x1-m1",
            128640.3
          ],
          [
            "x2-m2",
            19559.033
          ]
        ]

      }
    ]  
]

以下是我尝试的内容

public class FilterFluorescence {

    private String filter;
    private double fluorescence;

    public FilterFluorescence() {
    }

    public FilterFluorescence(String filter, double fluorescence) {
        this.filter = filter;
        this.fluorescence = fluorescence;
    }

    public String getFilter() {
        return filter;
    }
    public void setFilter(String filter) {
        this.filter = filter;
    }
    public double getFluorescence() {
        return fluorescence;
    }
    public void setFluorescence(double fluorescence) {
        this.fluorescence = fluorescence;
    }   
}

WellFilterFluorescence

public class WellFilterFluorescence {

    List<FilterFluorescence> data;

    public List<FilterFluorescence> getData() {
        return data;
    }

    public void setData(List<FilterFluorescence> data) {
        this.data = data;
    }
}

PlateFilterFluorescence

public class PlateFilterFluorescence {

    private List<WellFilterFluorescence> wellFilterFluorescence;

    public List<WellFilterFluorescence> getWellFilterFluorescence() {
        return wellFilterFluorescence;
    }

    public void setWellFilterFluorescence(List<WellFilterFluorescence> wellFilterFluorescence) {
        this.wellFilterFluorescence = wellFilterFluorescence;
    }

}

RawDataCurve

public class RawDataCurve {

    private List<PlateFilterFluorescence> plateFilterFluorescence;

    public void setPlateFilterFluorescence(List<PlateFilterFluorescence> plateFilterFluorescence ) {
        this.plateFilterFluorescence = plateFilterFluorescence;
    }

    public List<PlateFilterFluorescence> getPlateFilterFluorescence() {
        return this.plateFilterFluorescence;
    }

}

我发送了List<RawDataCurve>作为API响应,如下所示

[
  {
    "plateFilterFluorescence": [
      {
        "wellFilterFluorescence": [
          {
            "data": [
              {
                "filter": "X1_M1",
                "fluorescence": 118303.515625
              },
              {
                "filter": "X4_M4",
                "fluorescence": 144837.296875
              }
            ]
          }
         ]
        }
       ]
     },
    {
    "plateFilterFluorescence": [
      {
        "wellFilterFluorescence": [
          {
            "data": [
              {
                "filter": "X1_M1",
                "fluorescence": 118303.515625
              },
              {
                "filter": "X4_M4",
                "fluorescence": 144837.296875
              }
            ]
          }
         ]
        }
       ]
     }
]

如何删除Jackson生成的转换后的JSON中的属性名称,以及更好的方法是什么?我目前的做法看起来很混乱。

1 个答案:

答案 0 :(得分:0)

根据您的愿望 -

{

"data": [["x1-m1",128650.3],["x2-m2", 19589.033]],....

}

我建议不要重复数据节点对象,只在其中包含重复的内容,你可以这样构造 -

{

"data": [ [ "x1-m1", 128650.3 ], [ "x2-m2", 19589.033 ], [ "x3-m3", 12589.011 ], ....., ... ]

}

按以下方式构建您的对象 -

public class RawDataCurve {

List<FilterFluorescence> data;

    public List<FilterFluorescence> getData() {
        return data;
    }

    public void setData(List<FilterFluorescence> data) {
        this.data = data;
    }

}