Android 使用Gson-Kotlin解析嵌套JSON
我正在尝试将以下json转换为列表数据对象:Android 使用Gson-Kotlin解析嵌套JSON,android,json,kotlin,gson,Android,Json,Kotlin,Gson,我正在尝试将以下json转换为列表数据对象: [ { "type": "PHOTO", "id": "pic1", "title": "Photo 1", "dataMap": {} }, { "type": "SINGLE_CHOICE", "id
[
{
"type": "PHOTO",
"id": "pic1",
"title": "Photo 1",
"dataMap": {}
},
{
"type": "SINGLE_CHOICE",
"id": "choice1",
"title": "Photo 1 choice",
"dataMap": {
"options": [
"Good",
"OK",
"Bad"
]
}
},
---
---
]
代码:
我无法从json获取选项列表
我尝试了下面的代码,并且能够在dataMap中检索选项。
这是否可以直接在用户类中检索选项列表
data class User(val type: String, val id: String, val title: String, @SerializedName("dataMap") val options: dataMap)
data class dataMap(val options: List<String>)
选项应该是字符串列表
data class Options(val dataMap: List<String>)
数据类选项(val-dataMap:List)
选项应该是字符串列表
data class Options(val dataMap: List<String>)
数据类选项(val-dataMap:List)
您可以试试这个
val jsonObject = JSONObject(<your JSON string result>);
val jsonArray = jsonObject.getJSONArray();
//use GSON to parse
if (jsonArray != null) {
val gson = Gson();
val objResponse = gson.fromJson(jsonArray.toString(), ObjResponse[]::class.java);
val objResponseList = Arrays.asList(objResponse);
}
val jsonObject=jsonObject();
val jsonArray=jsonObject.getJSONArray();
//使用GSON解析
if(jsonArray!=null){
val gson=gson();
val objResponse=gson.fromJson(jsonArray.toString(),objResponse[]::class.java);
val objResponseList=Arrays.asList(objResponse);
}
您可以试试这个
val jsonObject = JSONObject(<your JSON string result>);
val jsonArray = jsonObject.getJSONArray();
//use GSON to parse
if (jsonArray != null) {
val gson = Gson();
val objResponse = gson.fromJson(jsonArray.toString(), ObjResponse[]::class.java);
val objResponseList = Arrays.asList(objResponse);
}
val jsonObject=jsonObject();
val jsonArray=jsonObject.getJSONArray();
//使用GSON解析
if(jsonArray!=null){
val gson=gson();
val objResponse=gson.fromJson(jsonArray.toString(),objResponse[]::class.java);
val objResponseList=Arrays.asList(objResponse);
}
默认情况下,您的变量名将引用您的JSON键。所以你可以试试这个:
data class User(val type: String, val id: String, val title: String, val dataMap: List<Options>)
默认情况下,变量名
将引用您的JSON键
。所以你可以试试这个:
data class User(val type: String, val id: String, val title: String, val dataMap: List<Options>)
这并没有回答问题,因为OP专门询问如何使用GSONTS。这并没有回答问题,因为OP专门询问如何使用GSONThanks,Naufal…能够检索选项,但在dataMap对象中。这可以直接在用户类中检索选项列表吗?谢谢,Naufal…可以检索选项,但是在dataMap对象中。这是否可以将选项列表直接检索到用户类中?
data class User(val type: String, val id: String, val title: String, val dataMap: List<Options>)
data class User(val type: String, val id: String, val title: String, @SerializedName("dataMap") val options: List<Options>)