迁移到Jersey 2,现在需要解释客户端中的值Type

时间:2014-07-18 12:44:52

标签: java json rest jersey jettison

迁移到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();
}

0 个答案:

没有答案