在REST响应中返回Gson JsonObject会导致500个内部服务器错误

在REST响应中返回Gson JsonObject会导致500个内部服务器错误,json,rest,gson,jersey-2.0,Json,Rest,Gson,Jersey 2.0,我有以下方法,它将JsonObject作为Rest响应返回: @GET @Produces({MediaType.APPLICATION_JSON}) public Response testMethod(){ String json = "{\"key\" : \"value\"}"; JsonObject jsonObj = new Gson().fromJson(json, JsonObject.class); return Response.ok().entity

我有以下方法,它将JsonObject作为Rest响应返回:

@GET
@Produces({MediaType.APPLICATION_JSON})
public Response testMethod(){
    String json = "{\"key\" : \"value\"}";
    JsonObject jsonObj = new Gson().fromJson(json, JsonObject.class);
    return Response.ok().entity(jsonObj).build();
}
响应为500内部服务器错误。
当我将任何其他对象放入“entity”参数中时,同样可以正常工作。

只是
toString()
it。否则,您将需要为它创建MessageBodyWriter只需执行toString(),响应包含带反斜杠的转义引号。我不使用Gson。如何从中获得规范化的字符串表示(如果不是toString())?Gson的toJson方法允许我这样做。然而,这样获得的字符串仍然包含转义引号,这是不可取的。我当时不知道。也许有更精通Gson的人可以帮忙。在我看来,这似乎是一种(正常的)行为,只是
toString()
it。否则,您将需要为它创建MessageBodyWriter只需执行toString(),响应包含带反斜杠的转义引号。我不使用Gson。如何从中获得规范化的字符串表示(如果不是toString())?Gson的toJson方法允许我这样做。然而,这样获得的字符串仍然包含转义引号,这是不可取的。我当时不知道。也许有更精通Gson的人可以帮忙。我觉得奇怪,这是(正常的)行为。