java - 如何将json对象传递给模型-retrofit2
问题描述
我的服务器的响应是这样的:
{
"succ":true,
"result":[..]
}
我只是将我的内容传递result
给我的模型。我没有为上述响应制作单独的模型。
例如:
@FormUrlEncoded
@POST("/category")
Call<List<CategoryPeramoonModel>> Category(@Field("id") String Title);
Call<List<CategoryPeramoonModel>> call = ((App)getApplication()).getApiService().Category("0");
call.enqueue(new Callback<List<CategoryPeramoonModel>>() {
@Override
public void onResponse(Call<List<CategoryPeramoonModel>> call, Response<List<CategoryPeramoonModel>> response) {
Log.e("size",""+response.body().size());
adapter.addItems(response.body());
}
@Override
public void onFailure(Call<List<CategoryPeramoonModel>> call, Throwable t) {
Log.e("error sliders",t.getMessage());
}
});
CategoryPeramoonModel is a model of result's content. but I got an error message.
尝试在空对象引用上调用接口方法“int java.util.List.size()”
解决方案
我认为这里的问题是您期望List<CategoryPeramoonModel>
但您API
实际上返回了一个对象。要解决此问题,您需要为响应创建一个模型,如下所示。
class MyResponse(
val succ: Boolean,
val result: List<CategoryPeramoonModel>
)
然后你的API
界面应该是这样的
Call<MyResponse> Category(@Field("id") String Title);
推荐阅读
- powershell - 脚本在 ISE 中工作,但在 Visual Studio Code 中不工作,脚本或 VS Code 有问题?
- visual-studio - 发布到 azure - 关闭方案更新正在终止,因为可能会发生数据丢失
- typescript - Typescript 根据动作类型获取正确的类型
- bash - bash检查命令是否从变量成功
- c# - 在不同类中使用方法时出现 C# 错误 CS0103
- python - 检查两个 3D numpy 数组是否包含重叠的 2D 数组
- ms-access - 如何在 MS - Access 的交叉表查询中对两行进行分组?
- python - 使用 Python 更改 XML 中的标签名称
- android - ARCore根据纬度/经度计算Pose
- tensorflow - 将 DeepLab 转换为 TensorFlow Lite