Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 改进JSON值的模型集_Java_Android_Json_Retrofit - Fatal编程技术网

Java 改进JSON值的模型集

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

我正在构建一个Android应用程序,它使用改造从web服务获取信息。给出的许多响应都具有这种结构:

{
    "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类型的读/写生成器