0

我正在使用 Jersey 客户端与 Facebook Graph API 进行交互。Jersey 客户端帮助我将 JSON 响应解析为 Java 类。

有时 Facebook 会发送 400 响应以及有关 400 响应原因的有用信息。例如:{"error":{"message":"Error validating application. Cannot get application info due to a system error.","type":"OAuthException","code":101}}

Jersey 只是抛出一个异常并吃掉响应中有用的部分:-(

如何让它将 JSON 解析为 Java 类,其中的字段对应于有用的错误信息?

4

2 回答 2

2

您可以为此目的使用ObjectMapper 。基本上,创建一个与 JSON 中的内容匹配的对象,并使用映射器的 readValue() 方法将 JSON 响应转换为一个对象。

于 2013-04-29T04:08:25.247 回答
1

此代码有效:

try {
  User user = user_target
      .request()
      .get(User.class);
  System.out.println(user);
} catch (ClientErrorException primary_exception) {
  try {
    ErrorResponse error_response = primary_exception.getResponse().readEntity(ErrorResponse.class);
    System.out.println(error_response);
  } catch (ClientErrorException secondary_exception) {
    System.err.println("Secondary Exception: " + secondary_exception.getMessage());
    throw new ThisAppException("Secondary Exception", secondary_exception);
  }
}
于 2013-04-29T21:47:41.930 回答