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 があるため、これはもう機能しません。この 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();
}
4

0 に答える 0