JSON Array Retrofit 并将其显示在 recyclerview Android Java 上
Posted
技术标签:
【中文标题】JSON Array Retrofit 并将其显示在 recyclerview Android Java 上【英文标题】:JSON Array Retrofit and display it on a recyclerview Android Java 【发布时间】:2021-04-01 00:14:39 【问题描述】:我正在尝试实现@GET 请求,但我得到一个空响应。我熟悉使用以下内容实现响应正文
"billers": [
"name": "Biller full name",
"slug": "biller-short-name",
"fields":
"FieldName":
"type": "can be textfield, date, selectable or hidden",
"required": true,
"placeholder": "This is a field",
"defaultValue": "value1"
"regex": "only appears if the type is textfield e.g. ^[-a-zA-Z .]1,100$",
"dateFormat": "only appears if type is date e.g. yyyy-MM-dd",
"values": [
"value1": "only appears if type is selectable",
"value2": "value 2"
]
]
但这是我第一次实现这样的响应
[
"name": "Category full name",
"slug": "category-short-name",
"iconUrl":
"android":
"xhdpi": "xhdpi category icon url",
"mdpi": "mdpi category icon url",
"hdpi": "hdpi category icon url"
,
"ios":
"3x": "3x biller icon url",
"retina": "retina biller icon url",
"nonRetina": "non-retina icon image url"
]
这是我的课程
这是我的错误,调用 api 时收到 200,但是当我尝试在 recyclerview 上显示它时,它说响应为空
【问题讨论】:
您是否尝试过记录您在响应中收到的内容? 附上代码而不是屏幕截图 【参考方案1】:您没有展示如何将响应转换为您的模型。从第二个回复可以看出你的回复是PayBillsCategoryModel
的列表
以 Gson 为例,你有这样的东西:
data class PayBillsCategoryModel(
@SerializedName("name ") val name: String? = null,
@SerializedName("name ") val slug: String? = null,
@SerializedName("name ") val iconUrl: IconUrl? = null
)
data class IconUrl(
@SerializedName("android") val android: Android? = null,
@SerializedName("ios") val ios: Ios? = null
)
data class Android(
@SerializedName("xhdpi") val xhdpi: String? = null,
@SerializedName("mdpi") val mdpi: String? = null,
@SerializedName("hdpi") val hdpi: String? = null,
)
data class Ios(
@SerializedName("3x") val x3: String? = null,
@SerializedName("retina") val retina: String? = null,
@SerializedName("nonRetina") val nonRetina: String? = null
)
所以在 api 调用之后你的响应是
data class Response(val payBillsList: ArrayList<PayBillsCategoryModel>)
您需要将此列表传递给您的适配器
adapter.setData(payBillList)
【讨论】:
以上是关于JSON Array Retrofit 并将其显示在 recyclerview Android Java 上的主要内容,如果未能解决你的问题,请参考以下文章
通过 URL 从 JSON 数据中获取数据并使用列表视图或回收器视图将其显示在 android 应用程序中
预期 BEGIN_OBJECT 但在路径 $ 处是 BEGIN_ARRAY - 使用 RxJava 处理 JSONArray 响应的 Retrofit2
我得到了预期的BEGIN_ARRAY,但是在使用Android中的Retrofit(java)尝试获取json时,在第1行第2列路径$中是BEGIN_OBJECT