我正在使用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}}
泽西岛只是抛出一个异常并且吃掉了响应中有用的部分: - (
如何让它将JSON解析为Java类,其中的字段对应于有用的错误信息?
答案 0 :(得分:1)
您可以将ObjectMapper用于此目的。基本上,创建一个与JSON中的内容匹配的对象,并使用mapper的readValue()方法将JSON响应转换为对象。
答案 1 :(得分: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);
}
}