我想为以下Json创建一个模型,并且当我使用jsonschema2poj网站时,返回的模型不正确,并且我无权访问Id
,job
和Titles
。我将Retrofit用于REST API。
请帮助我做出正确的模型。
{
"res": [
[
{
"name": "tom",
"lname": "ford",
"Status": 3
}
],
[
{
"Title1": "AAA"
},
{
"Title2": "BBB"
},
{
"Title3": "CCC"
}
],
[
{
"Id": "123",
"job": "Doctor"
}
]
]
}
答案 0 :(得分:0)
通过这种方式制作pojo类。
public class ResItemItem{
@SerializedName("Status")
private int status;
@SerializedName("lname")
private String lname;
@SerializedName("name")
private String name;
public void setStatus(int status){
this.status = status;
}
public int getStatus(){
return status;
}
public void setLname(String lname){
this.lname = lname;
}
public String getLname(){
return lname;
}
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
}
public class ResponseData{
@SerializedName("res")
private List<List<ResItemItem>> res;
public void setRes(List<List<ResItemItem>> res){
this.res = res;
}
public List<List<ResItemItem>> getRes(){
return res;
}
}
并将ResponeData pojo类传递到翻新的api respone中。
我希望您了解所有改装内容。
答案 1 :(得分:0)
由于您需要一种通用的机制,其中没有为数组定义的键,因此如果Map<String,String>
数组中有多个项目,则可以使用res
的数组,然后将其包装在另一个对象中。这本质上将给出List<Map<String, String>>
。您的课程可以是:
public class ResultObject {
// considering that the res object has multiple
// array of nested array of objects, if not then
// use just Map<String, String> without the List<>
List<Map<String, String>> mMapString;
public Map<String, String> getMapForIndex(int index) throws IllegalAccessException {
if (mMapString == null || index > mMapString.size()) {
throw new IllegalAccessException("map is null or index is too large");
}
return mMapString.get(index);
}
}
,您的父班将是:
public class ParentObject {
@SerializedName("res")
@Expose
ResultObject mResult;
public ResultObject getResult() {
return mResult;
}
}
但是,我建议使用更简洁的JSON结构,如果您也可以控制后端流程,则可以单独命名。