燃料,Kotlin,Gson,预计BEGIN_ARRAY,但在BEGIN_OBJECT第1行
我试图解析一个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? = 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> { override fun deserialize(content: String) = Gson().fromJson<List>(content, object : TypeToken<List>() {}.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,但是BEGIN_OBJECT在第1行第2列路径$]
我如何解决它?
你的json
{ "count": 1, "items": [ { "organization_id": 6972979, "organization_name": "Lorem ipsum dolor sit amet, consectetur adipisicing elit", } ] }
表示一个JSON对象而不是一个JSON数组。
所以不是试图将它反序列化成一个List
of LoremModel
对象
Gson().fromJson>(content, object : TypeToken>() {}.type)
您应该将其反序列LoremModel
types的对象。 所以你可以这样做:
Gson().fromJson(content, LoremModel::class.java)
- 使用GSON进行Kotlin对象反序列化
- Gson反序列化JSON。 java.lang.RuntimeException:无法调用具有根本原因的public com.derp.procedure.model.SkeletonElement(),无参数)
- 如何处理Kotlin中的空白参数?
- springfox(swagger2)不能使用GsonHttpMessageConverterConfig
- Kotlin TypeToken“未解决的参考”错误
- 如何在Kotlin中使用Gson注册一个InstanceCreator?
- com.google.gson.internal.LinkedTreeMap不能转换为我的类
- GSON不能用自定义getter来反序列化Kotlin类
- 暴露:如何解析JSON到一个实体类