Java 改进JSON值的模型集
我正在构建一个Android应用程序,它使用改造从web服务获取信息。给出的许多响应都具有这种结构:Java 改进JSON值的模型集,java,android,json,retrofit,Java,Android,Json,Retrofit,我正在构建一个Android应用程序,它使用改造从web服务获取信息。给出的许多响应都具有这种结构: { "status": 0, "result": { "101": { "id": 101, "name": "John", "surname": "Doe", "phone": 6235974002, "email": "john@doe.co
{
"status": 0,
"result": {
"101": {
"id": 101,
"name": "John",
"surname": "Doe",
"phone": 6235974002,
"email": "john@doe.com"
},
"118": {
"id": 118,
"name": "Peter",
"surname": "Parker",
"phone": 6589325074,
"email": "peter@parker.com"
},
"130": {
"id": 130,
"name": "Foo",
"surname": "Gar",
"phone": 6998531452,
"email": "foo@bar.com"
}
}
}
我如何对这种“结果”价值进行建模?我试图将其设置为数组,但应用程序引发异常。目前,我对此响应的模型如下:
@Parcel
public class ActivityResponse
{
@SerializedName("status")
private int status;
@SerializedName("result")
private ArrayList<User> result;
public int getStatus () {
return this.status;
}
public void setStatus (int status) {
this.status = status;
}
public ArrayList<User> getResult () {
return this.result;
}
public void setResult (ArrayList<User> result) {
this.result = result;
}
}
@包裹
公共课堂活动响应
{
@序列化名称(“状态”)
私人身份;
@SerializedName(“结果”)
私有数组列表结果;
public int getStatus(){
返回此状态;
}
公共无效设置状态(int状态){
这个状态=状态;
}
公共ArrayList getResult(){
返回此结果;
}
公共void setResult(ArrayList结果){
this.result=结果;
}
}
首先也是最重要的一点是,从服务返回的数据不太稳定-它看起来应该是一个集合,而不是一个对象,因为ID已经在子对象中。不管怎样,给定JSON响应,这里的解决方案是Map
@SerializedName("result")
private Map<Integer, User> result;
@SerializedName(“结果”)
私有地图结果;
这应该允许您检索每个
用户
对象。问题在于结果不是一个集合,而是一个具有属性101、118、130的对象。这些字段是恒定的还是动态的?如果这些字段是动态的,那么这个web服务就不是很有用,因为看起来这些字段应该是该内部对象数组中的字段。是的。101、118和130是此调用的动态值结果。因此,我应该直接处理JSON响应而不是改型吗?谢谢,很抱歉与C混淆了,有时,现在将进行编辑我有以下错误:错误:(22,40)错误:Parceler:找不到org.example.ActivityResponse.result的java.util.Map类型的读/写生成器