我在spring boot中使用了一个Web服务(REST),数据是json,格式如下所示:
{
"id": 679,
"score": 3
},
{
"id": 682,
"score": 3
},
{
"id": 692,
"score": 3
}
在使用数据后,我必须生成一个Web服务,该服务以JSON格式传递数据,如下所示
{
status:{
"code":"OK",
"message":"success"
}
data:[
{
"id": 679,
"score": 3
},
{
"id": 682,
"score": 3
},
{
"id": 692,
"score": 3
}
]
}
所以目前我所做的是控制器部分是
@RequestMapping(value="/data",produces={MediaType.APPLICATION_JSON_VALUE},method=RequestMethod.GET)
public ResponseEntity<List<Model>> getBooking(@RequestParam("lat")double latitude,@RequestParam("lon") double longitude,@RequestParam("id") int id){
list=getapi(latitude,longitude,id);
return new ResponseEntity<List<Model>>(list,HttpStatus.OK);
}
@ResponseBody
public List<Model> getapi(double latitude,double longitude,int id){
List<Model> list = Arrays.asList(restTemplatestreetapi.getForObject("http://dataurl, Model[].class));
return list;
}
我当前的Model类就像
public class Model {
int id;
int score;
public int getid() {
return id;
}
public void setid(int id) {
this.id = id;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
}
我使用该服务并直接生成它。但不是这样,我想生成上面的结果。感谢任何帮助。
答案 0 :(得分:1)
您可以在代码中更改响应实体类型,例如
public ResponseEntity<ResponseClass> getBooking(@RequestParam("lat")double latitude,@RequestParam("lon") double longitude,@RequestParam("id") int id){
根据您的要求定义您的响应类,如
public class ResponseClass {
private Status status;
/**
* If no error found use this method for response
*
* @param message
* @param data
* @return
*/
public static ResponseEntity<ResponseClass> ok(Object data) {
ResponseClass response = new ResponseClass();
response.getStatus.setMessage.setCode("ok");
response.getStatus.setMessage("success")
return ResponseEntity.ok().body(response);
} }
public class Status {
private String message;
private String code;
//Getter Setter
}
以列表作为数据返回ResponseClass
return ResponseClass.ok(list);
您还可以在ResponseClass中添加错误状态