如何在Kotlin中解析JSON

ppcbkaq5  于 2022-12-01  发布在  Kotlin
关注(0)|答案(2)|浏览(238)

如何在Kotlin中解析JSON?它从JSON中获取整个数组,但不能从数组中获取特定对象。
它在Java中工作,但在Kotlin中不工作。

try {
    val jsonObject = JSONObject(result)
    val users = jsonObject.getJSONArray("Users")
    for (i in 0 until users.length())
    {
        Toast.makeText(applicationContext,"Json Result is----"+result,Toast.LENGTH_LONG).show()
        val obj = users.getJSONObject(i)
        val name = obj.get("name").toString()
        Toast.makeText(applicationContext, "User name: "+name , Toast.LENGTH_LONG).show();
    }
}catch(e: JSONException){}
6kkfgxo0

6kkfgxo01#

使用jsonObject.getString(paramName: String),而不是jsonObject.get(paramName: String).toString()
也可以将此对象转换为字符串。请参见http://www.docjar.com/docs/api/org/json/JSONObject.html

atmip9wb

atmip9wb2#

最佳快速实践是使用https://json2kotlin.com等工具生成原生Kotlin“数据类”,而不是手动检查每个键
因此,您的API响应将变成与JSON结构对应的以下几个数据类:

data class Json4Kotlin_Base (

    val users : List<Users>
)

data class Users (

    val id : String,
    val name : String,
    val age : Int,
    val gender : String,
    val email : Email
)

data class Email (

    val primary : String,
    val secondary : String
)

当您得到结果时,只需将JSON响应Map到这些数据类。video here演示了如何一步一步地进行Map,并包含更多的示例代码。

相关问题