繁体   English   中英

如何在 Kotlin 中解析 JSON

[英]How to parse JSON in Kotlin

如何在 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){}

使用jsonObject.getString(paramName: String) ,而不是jsonObject.get(paramName: String).toString()

或者您也可以将此对象转换为字符串。 请参阅http://www.docjar.com/docs/api/org/json/JSONObject.html

最好和快速的做法是使用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 响应映射到这些数据类。 此处视频展示了如何逐步完成此操作,并包含更多示例代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM