【发布时间】:2016-07-07 19:34:09
【问题描述】:
我有所有请求的 api,例如:
{
"success": "true",
"data": [],
"errors": []
}
例如:
{
"success": "true",
"data": [
{
"id": "666",
"name": "Cars",
"imgUrl": "/images/mod_catalog_prod/categories/no-image.jpg",
"descr": "",
"childRubricCount": 20
},
{
"id": "667",
"name": "Buses",
"imgUrl": "/images/mod_catalog_prod/categories/no-image.jpg",
"descr": "",
"childRubricCount": 14
}
],
"errors": []
}
如果success==true 可以调用onResponse 块,如果success==false 调用onFailure 块,错误文本来自json 的errors 变量。 Api 包含 json 响应中数据块的不同响应数据模型,我需要动态更改数据模型类。 有没有办法创造这样的东西?所有回复都会对我有用。
【问题讨论】:
-
你形成数据 JsonArray 这样,你的 json 数据格式显示错误。 “数据”:[ { “id”:“666”,“名称”:“汽车”,“imgUrl”:“/images/mod_catalog_prod/categories/no-image.jpg”,“descr”:“”,“childRubricCount” “:20 },{“id”:“667”,“名称”:“巴士”,“imgUrl”:“/images/mod_catalog_prod/categories/no-image.jpg”,“descr”:“”,“childRubricCount” ": 14 } ]
-
您需要为每种情况做出相同类型的响应,从而使您的错误为字符串类型。仅为成功类型制作模型。
-
@Jai Rajesh 你说得对,我已经更正了。但问题是从数据 json 字段处理不同 java 类模型的数据的真正方法是什么。如果成功 == false,则抛出带有错误消息的异常。
-
@Kundan Kumar Roy 所以我做到了,但我认为有一种方法可以在改造/杰克逊方面做到这一点。例如,这是相同的问题stackoverflow.com/questions/23070298/… 这适用于 GSON。
-
你在使用改造吗?
标签: android nested jackson retrofit