Android 使用gson反序列化json并进行改进

Android 使用gson反序列化json并进行改进,android,json,gson,retrofit2,rx-java2,Android,Json,Gson,Retrofit2,Rx Java2,我目前正在尝试反序列化一个json对象,该对象包含数百个具有相同结构的对象,如下所示: “data”: { “1” { “id” : 1 “name” : “sample” }, … “1000” { “id” : 1000 “name” : “sample” } } 我将如何使用gson、改装和rxjava来实现这一点?我能想到的唯一办法是做以下看起来不切实际的事情

我目前正在尝试反序列化一个json对象,该对象包含数百个具有相同结构的对象,如下所示:

“data”: {
    “1” {
        “id” : 1
        “name” : “sample”
        },
        …
    “1000” {
        “id” : 1000
        “name” : “sample”
        }
}
我将如何使用gson、改装和rxjava来实现这一点?我能想到的唯一办法是做以下看起来不切实际的事情

public class Data {

    @SerializedName(“1”)
    private Item _1;
    …
    @SerializedName(“1000”)
    private Item _1000;

    Item getItem_1() {
        return _1;
    }

    void setItem_1(Item _1) {
        this._1 = _1;
    }
    …
    Item getItem_1000() {
        return _1000;
    }

    void setItem_1000(Item _1000) {
        this._1000 = _1000;
    }
}

您应该更改json格式的结构。使用数组(方括号)而不是1000个对象(花括号)

那么您的课程将如下所示:

class Data{
    Item[] items;

    Item getItem(int position){
        return items[position];
    }

}

class Item{
    int id;
    String name;
}

您应该更改json格式的结构。使用数组(方括号)而不是1000个对象(花括号)

那么您的课程将如下所示:

class Data{
    Item[] items;

    Item getItem(int position){
        return items[position];
    }

}

class Item{
    int id;
    String name;
}

使用
Map
而不是为
“数据”
创建类。所有的
“1”
“1000”
将是映射键,您可以使用它们,也可以忽略它们并使用
map.values()

而不是为
“数据”
创建类,使用
map
。所有的
“1”
<代码>“1000”将是映射键,您可以使用它们,也可以忽略它们并使用
map.values()