如何解析这种具有不同名称的 json,或者告诉我如何在回收站视图中显示此响应。 :(
Posted
技术标签:
【中文标题】如何解析这种具有不同名称的 json,或者告诉我如何在回收站视图中显示此响应。 :(【英文标题】:How do I parse this kinda json which has different names , or tel me how do I even display this response in recycler view. :( 【发布时间】:2021-10-21 12:24:28 【问题描述】:
"code":200,
"response":
"Categories":
"12345":
"name":"Category1",
"image":"image1URL"
,
"23456":
"name":"Category2",
"image":"image2URL"
,
"34567":
"name":"Category13",
"image":"image3URL"
,
"45678":
"name":"Category14",
"image":"image4URL"
,
"56789":
"name":"Category15",
"image":"image5URL"
好像里面有所有的 uid。我不知道,我需要快速帮助,最后一件事,我不能要求他们修改。
【问题讨论】:
你的面试官知道你在这里发布这个问题吗? @enzo 当然不是。 :p 但我有一天的时间来完成这个。也是为了我的学习,CZ,如果不是我怎么会知道 【参考方案1】:您可以使用JSONObject
(org.json 库)解析对象,并像这样遍历videoCategories
的子元素的键:
val videoCategories = JSONObject(jsonString).getJSONObject("response").getJSONObject("videoCategories")
videoCategories.keys().forEach uuid ->
Log.v("JSONParsing", "uuid: $uuid")
或者,当然,使用其他收集操作(如map
)将特定元素转换为模型对象,您可以在回收器视图适配器中使用:
val videoCategories = JSONObject(jsonString).getJSONObject("response").getJSONObject("videoCategories")
val categories = videoCategories.keys().map uuid ->
val categoryObject = videoCateories.getJSONObject(uuid)
val name = categoryObject.getString("name")
val image = categoryObject.getString("image")
Category(uuid, name, image)
【讨论】:
以上是关于如何解析这种具有不同名称的 json,或者告诉我如何在回收站视图中显示此响应。 :(的主要内容,如果未能解决你的问题,请参考以下文章
kotlinx.serialization :如何解析为与 JSON 键的确切名称不同的变量名称