我试图像这样解析一个JSON字符串:
{
"count": 1,
"items": [
{
"organization_id": 6972979,
"organization_name": "Lorem ipsum dolor sit amet, consectetur adipisicing elit",
}
]
}
和Kotlin班:
class LoremModel {
var count: Int? = null
var items: List<Lorem>? = null
class Lorem {
var organization_id: Int? = null
var organization_name: String? = null
constructor(organization_id: Int?, organization_name: String?) {
this.organization_id = organization_id
this.organization_name = organization_name
}
}
class ListDeserializer : ResponseDeserializable<List<LoremModel>> {
override fun deserialize(content: String) = Gson().fromJson<List<LoremModel>>(content, object : TypeToken<List<LoremModel>>() {}.type)
}
}
燃料部分:
Fuel.get("/lorem/search", listOf("keywords" to keyword, "category" to category, "pageNum" to "1", "pageSize" to "10")).
responseObject(LoremModel.ListDeserializer()) { request, _, item ->
}
但是我收到了一个错误:
[失败:com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:预期为BEGIN_ARRAY但在第1行第2行路径为BEGIN_OBJECT $]
我该如何解决?
答案 0 :(得分:2)
你的json
{
"count": 1,
"items": [
{
"organization_id": 6972979,
"organization_name": "Lorem ipsum dolor sit amet, consectetur adipisicing elit",
}
]
}
表示JSON对象而不是JSON数组。
因此,不要尝试将其反序列化为List
LoremModel
个Gson().fromJson<List<LoremModel>>(content, object : TypeToken<List<LoremModel>>() {}.type)
个对象
LoremModel
您应该将其反序列化为Gson().fromJson(content, LoremModel::class.java)
类型的对象。所以你可以这样做:
$('.tabs-container.active video')[0].play();