如何在Kotlin中解析JSON

时间:2018-02-13 07:18:12

标签: android json parsing 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){}

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

最佳且快速的做法是,无需手动检查每个密钥,而是使用工具(例如)生成本地Kotlin“数据类”。 https://json2kotlin.com

因此,您的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响应映射到这些数据类。 video here逐步显示了操作方法,并提供了更多示例代码。