从JAX-RS响应构建器生成的JSON实体不正确

时间:2014-08-02 06:11:48

标签: java json jax-rs

在我的JAX-RS资源中,我使用authenticate方法返回Response对象。

public Response authenticate(@QueryParam("username") String username,
    @QueryParam("password") String password) throws JSONException, org.json.JSONException {

    JsonObjectBuilder jsonObjBuilder = Json.createObjectBuilder();
    jsonObjBuilder.add( "auth_token", authToken );
    JsonObject jsonObj = jsonObjBuilder.build();

    System.out.println("jsonObject" + jsonObj);
    return Response.status(200).entity(jsonObj).build();
}

jsonObject在我的print语句中是完美的,但我的实际响应是用

构建的
Response.status(200).entity(jsonObj).build();

看起来像这样:

{"auth_token":{"valueType":"STRING"}}

我希望回复看起来像这样:

("auth_token":"b88c1d32-2056-4c57-926d-e8213e875b7d")

1 个答案:

答案 0 :(得分:0)

使用简单的HashMap替换过于复杂的JsonObjectBuilder:

Map<String, String> jsonValues = new HashMap<>();
jsonValues.put("auth_token", authToken);
return Response.status(200).entity(jsonValues).build();

它应该生成:

{“ auth_token”:“ b88c1d32-2056-4c57-926d-e8213e875b7d”}