我从HTTP请求API中获取不同类型的JSON响应。可能会有几个来自API的JSON格式选项。例如,它可能是对预期数据的有效响应,但在某些情况下,它可能是内部服务器错误详细消息。Java处理JSON
目前我正在使用Gson将传入的字符串转换为对象,但由于有时它会以不同的格式传送,因此Gson无法将其转换为不同的模板类。
注意: 错误并不意味着例外。例如,JSON主体仅包含验证失败的信息,例如,调用已成功完成,并且JSON正文为有效。 HTTP实际上总是成功的,并且将是200.问题是,有时身份验证可能会失败,并且它将返回不同的JSON。
String response = restTemplate.getForObject(request, String.class);
ObjectResponse objResponse = gson.fromJson(response, ObjectResponse.class);
请问您能否提出更好的做法,以便我可以处理不同类型的响应?或者,也许你知道完全不同的做法。
谢谢!
请注意,HTTP标头具有状态码。你可能想要使用它(200 = OK,404 =未找到,500 =内部服务器错误等) – enlait
那么,你可以像大多数非Java世界一样做 - 解析地图和列表,然后检查生成的树。如果你需要创建一个对象,写一个接受Map的构造函数 - 这个流程真的很自然。 –