我從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的構造函數 - 這個流程真的很自然。 –