kotlin - kotlin 无法转换为 JSONArray
问题描述
当我尝试获取 JSONArray 时出现此错误arrivals
这是我的 json :
{
"arrivals": [
{
"airline": "Iraqi Airways",
"alia": "Iraqi Airways IAW",
"flight": "IA136"
}
]
}
我的代码:
private fun handleJson (jsonString: String?){
val jsonObj = JSONArray("arrivals")
val list = ArrayList<FlightShdu>()
var x = 0
while (x < jsonObj.length()){
val jsonObject = jsonObj.getJSONObject(x)
list.add(FlightShdu(
jsonObject.getInt("airline"),
jsonObject.getString("fn")
))
x++
}
val adapter = ListAdapte(this@MainActivity,list)
flightShdu_list.adapter = adapter
}
解决方案
我无法理解你的代码并写得一样
尝试这个
fun test(){
handleJson("""{
"arrivals": [
{
"airline": "Iraqi Airways",
"alia": "Iraqi Airways IAW",
"flight": "IA136"
}
]
}""")
}
data class FlightShdu(
val airline:String,
val alia:String,
val flight:String? = null
)
private fun handleJson (jsonString: String?){
val jsonObj = JSONObject(jsonString)
val jsonArray = JSONArray(jsonObj.get("arrivals").toString())
val list = ArrayList<FlightShdu>()
var x = 0
while (x < jsonArray.length()){
val jsonObject = jsonArray.getJSONObject(x)
list.add(FlightShdu(
jsonObject.getString("airline"),
jsonObject.getString("alia")
))
x++
}
list.forEach(::println)
}
您的 json 以{
转换为 JSONObject开头
是从哪里来fn
的?
airline
:Iraqi Airways
可以转换成字符串
推荐阅读
- python - RaspberryPi 零 W Paho-mqtt 无法与本地主机一起使用
- reactjs - 如何通过 webpack 4 优化 tree-shaking 库
- javascript - 长文本的省略号
- android - RxJava如何缓存静态observable
- powershell - 使用 TFPT PowerShell 查询多个工作项
- javascript - 构造函数参数属性的 ECMAScript 提案
- java - IDEA Intellij:下划线文件编译时错误
- node.js - nginx + node.js + websockets 的问题
- android - Android中的后备字体文件
- c# - DataSource 更改后刷新 DataGridViewComboBoxColumn 的项