Android 如何在Kotlin中解析JSON

Android 如何在Kotlin中解析JSON,android,json,parsing,kotlin,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,

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

或者也可以将此对象强制转换为字符串。
请参见

最佳快速实践是使用工具生成本机Kotlin“数据类”,而不是手动检查每个密钥

因此,您的API响应将转换为与JSON结构对应的以下两个数据类:

data class Json4Kotlin_Base (

    val users : List<Users>
)


得到结果后,只需将JSON响应映射到这些数据类。演示了如何一步一步地进行,并包含了更多示例代码。

显示您的
json
数据。如果它在Java中工作,为什么要使用Kotlin?请格式化您的代码,它看起来非常糟糕。此外,如果它在Java中工作,您可以通过让IntelliJ将Java转换为Kotlin(
code->convert Java file to Kotlin file
)了解Kotlin代码应该是什么样子。结果可能并不完美,但这是一个很好的起点发布json url或数据只需使用[Gson]()
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
)