错误消息:应为BEGIN_ARRAY,但却是来自我自己的rest服务器Localhost的BEGIN_OBJECT



我正试图使用okHttp从本地主机上我自己的rest服务器上获取android上的JSON,如下所示:

JSON-

{
"status": true,
"data": [
{
"id": "1",
"title": "Jadwal Catin 2021",
"description": "bismillah"
},
{
"id": "2",
"title": "Jadwal Vaksin Covid Lansia",
"description": "Tanggal 16-Juli-2021 di puskesmas perwira sudah bisa vaksin covi-19 untuk lansia"
}
]
}

数据类

class Placeholder {
var userId: Int? = null
var id: Int? = null
var title: String? = null
@SerializedName("description")
var body: String? = null
}

进入Recycleview

override fun onResponse(call: okhttp3.Call, response: okhttp3.Response) {
val body = response.body!!.string()
var gson = GsonBuilder().create()
var result = gson.fromJson(body, Array<Placeholder>::class.java).toList()
runOnUiThread {
beritaAdapter.setData(result)
}

你知道我该怎么修吗?

这里显示的JSON不仅仅是Placeholder的数组,它还是一个JSON对象({ ... }(,它本身包含两个属性statusdatadata是一个部分匹配Placeholder类的对象数组。

您可以用以下类表示整个JSON:

class PlaceholdersResponse {
var status: Boolean
var data: List<Placeholder>
}

您可以通过以下方式访问数据阵列:

var result = gson.fromJson(body, PlaceholdersResponse::class.java).data.toList()

相关内容

  • 没有找到相关文章

最新更新