我想在json返回值中添加一个列表。这是我的代码 -
@RequestMapping(value = "/servicearea", produces="application/json")
@ResponseBody
public String ServiceArea(Model model, HttpServletRequest req, HttpServletResponse res)
{
List<ServiceArea> serviceLists = locationService.getAllServiceArea();
JsonObject result = Json.createObjectBuilder()
.add("message", "test")
.add("serviceLists", serviceLists)
.build();
return result.toString();
}
'serviceLists'是我要添加的那个。我在这行中遇到错误 - .add(“serviceLists”,serviceLists)。错误消息是JsonObjectBuilder不适用于参数。
提前致谢。
答案 0 :(得分:0)
只需像这样创建一个pojo
class ReturnPojo {
private String message;
private List<ServiceArea> serviceLists;
//getters and setters
}
从控制器中你可以做到
ReturnPojo returnPojo = new ReturnPojo;
returnPojo.setMessage("test");
returnPojo.setServiceLists(serviceLists);
return returnPojo;
更改方法签名以返回ReturnPojo
答案 1 :(得分:0)
以下解决方案仅在您使用Rest API和Spring时才有用。
创建类ServiceListPojo:
public class ServiceListPOJO{
List<ServiceArea> serviceLists;
public void setServiceLists(List<ServiceArea> serviceLists){
this.serviceLists = serviceLists;
}
}
使用@RestController
@RestController
public class SomeController{
@RequestMapping(value = "/servicearea")
public ServiceListPOJO ServiceArea()
{
List<ServiceArea> serviceLists = locationService.getAllServiceArea();
ServiceListPOJO slp = new ServiceListPOJO();
slp.setServciceLists(serviceLists);
return slp;
}
}