java - 改进在 Json 响应中访问多个模型

标签 java android json retrofit

下面有一些 JSON。之前,我在 JSON 响应中只有 items 元素,并使用改造通过以下代码访问它。效果很好。

但是现在我已经添加了推荐部分,我已经创建了推荐模型,但是现在如何从响应的推荐/项目部分访问数据?

编辑 也许有更好的方法来返回这些数据。可能有 500 个项目,但只有 20/30 个列表,因此我认为最好拆分而不是重复数据。

JSON

[
{
    "recommendation": [
        {
            "following": true,
            "list_id": "29",
            "list_name": "list29",
        },
        {
            "following": false,
            "list_id": "28",
            "list_name": "list28",
        }
    ]
},
{
    "items": [
        {
            "description": [
                "line1",
                "line2",
                "line3"
            ],
            "image1": "4367218/img1.jpg",
            "item_id": 5600,
            "title": "Title 1",
            "recommendation_id": 29
        },
        {
            "description": [
                "line1",
                "line2",
                "line3"
            ],
            "image1": "342345/img1.jpg",
            "item_id": 3600,
            "title": "Tite2",
            "recommendation_id": 28
        }
    ]
}
]

推荐模型

public class Recommendation {

    private Boolean following;
    private int listId;
    private String listName;

    public Boolean getFollowing() {
        return following;
    }

    // more getters and setters
}

商品型号

public class Item {

    private int item_id;
    private String title;
    private ArrayList<String> description;
    private String image1;
    private int recommendation_id;

    // more getters and setters
}

改造 GET

// feed
@GET("/items/{user_id}/{num_items}")
public void getFeedData(@Path("user_id") int user_id, @Path("num_items") Integer num_items, Callback<List<Item>> response);

最佳答案

{
    "recommendation": [
        "data":{
            "following": true,
            "list_id": "29",
            "list_name": "list29"
        },
       "data": {
            "following": false,
            "list_id": "28",
            "list_name": "list28"
        }
    ]
},
{
    "items": [
        "data_item":{
            "description": [
                "line1",
                "line2",
                "line3"
            ],
            "image1": "4367218/img1.jpg",
            "item_id": 5600,
            "title": "Title 1",
            "recommendation_id": 29
        },
         "data_item":{
            "description": [
                "line1",
                "line2",
                "line3"
            ],
            "image1": "342345/img1.jpg",
            "item_id": 3600,
            "title": "Tite2",
            "recommendation_id": 28
        }
    ]
}

型号:

public class Model{

ArrayList<Data> recommendation ; 
ArrayList<DataItem> items ;
}

数据模型:

public class Data{

   private boolean following ;
   private String list_id ;
   private String list_name ;

}

数据项模型:

public class DataItem{

private String description [];
private String image1 ;
private String item_id ;
private String title ;
private String recommendation_id ;

}

关于java - 改进在 Json 响应中访问多个模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28715580/

相关文章:

java - JInternalFrame 与 jtable,位于 JFrame 内部

java - 如何在运行时确定泛型对象的声明类型?

java - 将 Redis ByteString 转换为 BasicDBObject

java - 我可以使用 BIRT 报告设计器中使用信任库和 keystore 的 SSL 证书连接到数据库吗?

ios - 如何在 iOS 中解析复杂的 JSON 数据

java - 如何获得按钮点击通知?

android - 如何将字节数组中的图像文件数据转换为位图?

android - 将十六进制颜色字符串转换为颜色?

android - 在 Android 的 webservice Rest 中读取 Json。 FileNotFoundException异常

java - Hibernate OneToMany 关系中的循环