0

迁移到 Jersey 2.0 后,我的 REST 服务似乎以稍微不同的方式提供这个布尔标志。(如果有帮助,我也可以提供服务代码,但这看起来很标准,只需要在客户端上进行不同的交互)

{"incompleteFlag":{"valueType":"TRUE"}}

我认为这是因为 JSON 的构建方式随着迁移而改变,但我过去常常使用 Java 代码进行交互,如下所示:

boolean incompleteFlag = false;
JSONObject json = new JSONObject(response.readEntity(String.class));

//At this point in debugging, checking json variable looks good, as we seen above

incompleteFlag = json.getBoolean("incompleteFlag");

显然这不再起作用了,因为我们现在有一个 valueType 可以交互。有什么方法可以简单地获得这个真/假标志?我一直在努力寻找那里,但运气不佳。

编辑- 也添加服务代码。我在评论中提到了这一点,但是在尝试使用 JSONObject 而不是 javax 中的 JsonObject 时遇到了一些序列化问题,这就是为什么该方面随着迁移而改变的原因。

@GET
@Path("{employeeId}")
@Produces(MediaType.APPLICATION_JSON)
public Response produceJSON(@PathParam("employeeId") String empId){

    System.out.println("Checking emp forms for " + empId);

    boolean incompleteFlag = TAFactory.getHome().getIncompleteEmployeeForms(empId);

    JsonObject myObject = Json.createObjectBuilder().add("incompleteFlag", incompleteFlag).build();         
    return Response.ok(myObject, MediaType.APPLICATION_JSON).build();
}
4

0 回答 0