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 があるため、これはもう機能しません。この true/false フラグを簡単に取得する方法はありますか? 私はそこを探してみましたが、あまり運がありません。
編集- サービスコードも追加します。コメントでこれについて言及しましたが、javax の JsonObject の代わりに 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();
}