【发布时间】:2018-07-29 03:39:18
【问题描述】:
我得到的json结构如下:
{
"object": "list",
"total": 3,
"data": [
{
"object": "brand",
"id": "15243937043340",
"company": {
"object": "company",
"id": "956936000",
"name": "ABC"
},
"name": "Kindle",
"images": [
"http://www.spacecentrestorage.com/assets/uploads/General/SCS-Slide02-Commercial.jpg"
]
},
{
"object": "brand",
"id": "15243937043340",
"company": {
"object": "company",
"id": "956936000",
"name": "ABC"
},
"name": "Kindle",
"images": [
"http://www.spacecentrestorage.com/assets/uploads/General/SCS-Slide02-Commercial.jpg"
]
},
{
"object": "brand",
"id": "15243937043340",
"company": {
"object": "company",
"id": "956936000",
"name": "ABC"
},
"name": "Kindle",
"images": [
"http://www.spacecentrestorage.com/assets/uploads/General/SCS-Slide02-Commercial.jpg"
]
}
],
"associated": {}
}
这是我的 Gson 数据类映射:
data class Response (
@SerializedName("object")
val obj: String,
val total: Int,
val data: List<*>,
val associated: Response
)
data class Brand (
@SerializedName("object")
val obj: String,
val id: String,
val name: String,
val images: List<String>,
val company: Company
)
data class Company (
@SerializedName("object")
val obj: String,
val id: String,
val name: String
)
在上面提取树时,我发现返回的数据字符串变成 Malformed Json 并在 $[0].companies.null 上给出 MalformedJsonException
我已阅读有关 recursive deserialisation function 的信息,但它不适用于我的情况。我采用如下反序列化方法,使用原始方法,它会导致错误
val response = gson.fromJson(queryResult , Response::class.java)
println("result 2 : $response" )
val dataString = response.data.toString()
println("result 3 : $dataString" )
val brands = Gson().fromJson(dataString, Array<Brand>::class.java).toMutableList()
println("result 4 : $brands" )
我想问一下:
如果将json组件返回到字符串,是否所有的缩进和符号“都被删除?
要提取对象列表元素的所有关联对象,使用 Gson 反序列化对象列表需要采取哪些预防措施?
【问题讨论】:
-
做到了。你得到了一个可行的解决方案