我为所有网络服务响应维护了以下格式:
{
"status": "Status Code",
"description": "Success/Failure Message",
"data": {
"response_object": {},
"response_array": []
}
}
我使用GSON使用以下模型类解析它:
JSONResponse:
public class JSONResponse {
@SerializedName("status")
private String status;
@SerializedName("data")
private Data data;
@SerializedName("description")
private String description;
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public Data getData() {
return data;
}
public void setData(Data data) {
this.data = data;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
}
数据:
public class Data {
@SerializedName("response_object")
private ResponseObject responseObject;
@SerializedName("response_array")
private List<ORCResponse> orcResponses = new ArrayList<>();
public ResponseObject getResponseObject() {
return responseObject;
}
public List<ORCResponse> getOrcResponses() {
return orcResponses;
}
}
将JSON转换为Model对象:
Gson gson = new Gson();
JSONResponse jsonResponse = gson.fromJson(receivedJSON, JSONResponse.class);
现在,问题是数据元素下的JSON格式可能会根据Web服务而改变。
我的疑问:
答案 0 :(得分:0)
如果您的数据元素发生更改但Data类具有所需的所有可用字段,您仍然可以使用相同的响应。但是,您必须发送数据字段。即使是案件中的空洞反应。
使用InstanceOF确定您的实例并做相应的操作。
if(param instanceof Object) {
System.out.println("param is a Object");
}
else if( param instanceof String[]) {
System.out.println("param is String array");
}
希望它有所帮助,干杯!