/ / Java-Liste in JsonObject-Rückgabewert hinzufügen - json, spring, spring-mvc

Java-Liste in JsonObject-Rückgabewert hinzufügen - json, spring, spring-mvc

Ich möchte eine Liste im json-Rückgabewert hinzufügen. Hier ist mein Code -

    @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" möchte ich hinzufügen. In dieser Zeile wird ein Fehler angezeigt - .add ("serviceLists", serviceLists). Die Fehlermeldung lautet, dass JsonObjectBuilder für die Argumente nicht anwendbar ist.

Danke im Voraus.

Antworten:

0 für die Antwort № 1

Erstellen Sie einfach ein Pojo wie dieses

class ReturnPojo {
private String message;
private List<ServiceArea> serviceLists;

//getters and setters
}

Und von Ihrem Controller aus können Sie dies tun

ReturnPojo returnPojo = new ReturnPojo;
returnPojo.setMessage("test");
returnPojo.setServiceLists(serviceLists);

return returnPojo;

Ändern Sie die Methodensignatur, um zurückzukehren ReturnPojo


0 für die Antwort № 2

Die folgende Lösung ist nur nützlich, wenn Sie Rest API und Spring verwenden.

Klasse ServiceListPojo erstellen:

public class ServiceListPOJO{
List<ServiceArea> serviceLists;

public void setServiceLists(List<ServiceArea> serviceLists){
this.serviceLists = serviceLists;
}
}

Kommentieren Sie Ihren Controller mit @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;
}
}