REST响应为{}

时间:2019-05-09 11:57:13

标签: rest jersey-2.0

我是REST的新手。我写了一个小的REST资源,每当我尝试从POSTMAN调用REST服务时,我都会得到一个空的响应{}和状态码200

请求:

http://localhost:8080/demo/managers

@GET
@Path("managers")
@Produces({"application/json"})
public Response getManagers() throws GeneralException, JSONException

{
            JSONArray valueString = COMING_FROM_OTHER_METHOD();
            System.out.println("==== "+valueString.toString());

            return Response.ok(valueString,MediaType.APPLICATION_JSON).build();
          }

我可以在System.out.println()中看到正确的值:

[{"display":"john","id":"003"},{"display":"hansi","id":"004"},{"display":"samy gayle","id":"005"}]

我想要一个JSONArray响应,但是每次我得到一个空响应

{}

但是,当修改如下所示的代码时,它会给出正确的响应

@GET
@Path("managers")
@Produces({"application/json"})
public String getManagers() throws GeneralException, JSONException

{
            JSONArray valueString = COMING_FROM_OTHER_METHOD();
            System.out.println("==== "+valueString.toString());

            return valueString.toString();
          }

请帮助。为什么在尝试返回响应对象J时得到{}的提示?

1 个答案:

答案 0 :(得分:0)

我将使用域对象而不是String实例:

class Manager {
  private String id;
  private String display;
  ... setters/getters ...
}

public ResponseEntity<ArrayList<Manager>> getManagers() throws GeneralException {
  ArrayList<Manager> managers = COMING_FROM_OTHER_METHOD();
  return new ResponseEntity<>(managers, HttpStatus.OK);
}