我如何为 Retrofit 这个 Json 文件制作模型?
How can i make a model for this Json file for Retrofit?
Json 文件是:
{
"data": [
{
"name": "key",
"error": "key is not valid"
},
{
"name": "package_name",
"error": "package name is not valid"
}
],
"success": false,
"message": "information is not valid"
}
我有一个 BaseModel,它具有“成功”、“消息”、“数据”,我所有的回复都是从这个 Class 扩展而来的。
但是“数据对于来自服务器的每个响应都是不同的。
到目前为止我已经做到了:
public class BaseModel{
private Object data;
private boolean success;
private String message;
}
这种错误情况下的哪些数据将转换为 DataError:
的数组
public class DataError{
private String name;
private String error;
}
我收到一条错误消息:
java.lang.ClassCastException: com.google.gson.internal.LinkedTreeMap 无法转换为 com.example.mapp.Model.DataError
List<DataError> dataError = (List<DataError>)response.body().getData();
textView.append("Error:"+ dataError.get(0).getError());
解析时需要有List<DataError
>,虽然也可以解析为Map
。在 BaseModel
Generic 中创建 data
这样您也可以在其他 class 中重用它。将其命名为 BaseListModel
使其成为 return 列表。
public class BaseListModel<T>{
private List<T> data;
private boolean success;
private String message;
}
现在您可以进行 API 调用 return BaseListModel<DataError>
.
为了解析对象类型的响应,您可以创建其他基础 class .
public class BaseModel<T>{
private T data;
private boolean success;
private String message;
}
Json 文件是:
{
"data": [
{
"name": "key",
"error": "key is not valid"
},
{
"name": "package_name",
"error": "package name is not valid"
}
],
"success": false,
"message": "information is not valid"
}
我有一个 BaseModel,它具有“成功”、“消息”、“数据”,我所有的回复都是从这个 Class 扩展而来的。 但是“数据对于来自服务器的每个响应都是不同的。
到目前为止我已经做到了:
public class BaseModel{
private Object data;
private boolean success;
private String message;
}
这种错误情况下的哪些数据将转换为 DataError:
的数组public class DataError{
private String name;
private String error;
}
我收到一条错误消息:
java.lang.ClassCastException: com.google.gson.internal.LinkedTreeMap 无法转换为 com.example.mapp.Model.DataError
List<DataError> dataError = (List<DataError>)response.body().getData();
textView.append("Error:"+ dataError.get(0).getError());
解析时需要有List<DataError
>,虽然也可以解析为Map
。在 BaseModel
Generic 中创建 data
这样您也可以在其他 class 中重用它。将其命名为 BaseListModel
使其成为 return 列表。
public class BaseListModel<T>{
private List<T> data;
private boolean success;
private String message;
}
现在您可以进行 API 调用 return BaseListModel<DataError>
.
为了解析对象类型的响应,您可以创建其他基础 class .
public class BaseModel<T>{
private T data;
private boolean success;
private String message;
}