gpt4 book ai didi

java - 获取不同类型的 JSON 响应 Retrofit

转载 作者:行者123 更新时间:2023-12-02 02:06:01 25 4
gpt4 key购买 nike

我有 REST api,它根据同一路径的当前状态进行响应。我们假设 /api/users 响应为

{
"status":200,
"error":false,
"users":["a","b"]
}

如果用户被授权。否则,如果用户未获得授权,则会响应 {"status":403,"error":true,"redirect":"url"}。当使用 Retrofit 定义 api 调用的接口(interface)时,它需要响应对象的确切类型。

例如:

@GET("users")
Call<List<User>> getUsers()

但是这里 API 服务器响应不同形状的对象。遇到这种情况该如何处理?

最佳答案

基于意见的答案

基类

public class BaseResponse{
int status;
String error;
...
...
}

成功响应类

public class SuccessResponse extends BaseResponse{
String[] users;
...
...
}

失败响应类

public class FailureResponse extends BaseResponse{
String redirect;
...
...
}

API接口(interface)

@GET("users")
Call<BaseResponse> getUsers()

数据到达时

if(response.code == 200)
// Parse with SuccessResponse Class
else
// Parse with FailureResponse class

关于java - 获取不同类型的 JSON 响应 Retrofit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50794523/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com