Javax JSON 响应仅适用于 ".toString"

标签 java json jackson

我遇到以下问题。如果我像这样返回声明,它就会起作用:

@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
  @Path("foo")
  public Response foo(Model bar) throws CustomException {
    // do parsing and return response
    JSONObject response = fooBar.handleRequest(bar);
    return Response.status(HTTP_STATUS).entity(response.toString()).build();
  }

如果我在没有“.toString()”的情况下尝试它,我会得到一个空的 json 对象。 到目前为止找不到任何答案...

有人知道为什么吗?

最佳答案

将返回类型更改为对象,仅返回 JSONObject,而不将其转换为 String。 jackson 将负责转换。

@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
  @Path("foo")
  public Object foo(Model bar) throws CustomException {
    // do parsing and return response
    JSONObject response = fooBar.handleRequest(bar);
    return response;
  }

关于Javax JSON 响应仅适用于 ".toString",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37855995/

相关文章:

java - 如何使用 selenium webdriver 从日历中选择日期

ios - 如何在 Swift 中将所有键和值从 NSDictionary 中获取到单独的字符串数组中?

java - 在 Jackson/Jaxb 中打开一个元素

java - 如何使用 Jackson 从 yaml 文件创建 map ?

java - 如何在 EJB jar 文件中包含 jar 依赖项?

java - 为什么 View 的操作(在本例中为按钮)必须采用 View 作为参数?

java - 使用 ByteArray 安装 OSGi Bundle

python - 解析requests.post对象

使用 GSON 的 Java 对象到 JSON

java - 列表的 Jackson XML 序列化