如何在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){}
答案 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逐步显示了操作方法,并提供了更多示例代码。