如果您可以從服務器獲得2個不同的響應請求,如何格式化/設計您的類?Android翻新轉換器例外
注意:如果JSON響應格式(設計)與您的課程不同,那麼Retrofit將引發異常。來自JSON響應的所有字段都必須出現在您的班級中。
Java類,像JSON響應:
public class RequestResponseLogin
{
public ResponseLogin status;
public class ResponseLogin
{
public boolean success;
public List<String> message;
}
}
JSON響應:
{
"status" : {
"success" : false
"message" : {
"Invalid credientials",
"....",
"...."
}
}
}
這是我的請求的響應:
interface iLogin
{
@GET
RequestResponseLogin loginUser(@Query("user") String user, @Query("pass") String pass);
}
// ....
RequestResponseLogin response = data.loginUser("admin", "abc123");
如果登錄失敗,則public List<String> message;
將來自Web服務器的消息填充:
message[0] = 'Invalid credentials';
message[1] = 'Invalid username';
message[2] = 'Password match correct';
但是,如果Web服務器不迴應任何事情(成功登錄),比我得到改造一個例外,因爲public List<String> message;
是空的,Web服務器用一個簡單的空字符串消息進行回覆,而不是用字符串數組。如果我將public List<String> message;
更改爲public String message;
,它會起作用,但我不能這樣做,因爲如果登錄失敗,它必須是一個字符串數組。