迁移到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");
显然这不再起作用,因为我们现在有一个值类型来进行交互。任何方式简单地得到这个真/假旗?我一直试图搜索那里,但没有太多运气。
修改 - 同时添加服务代码。我在评论中提到过这一点,但是当我尝试使用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();
}