Доброе утро,
В настоящее время я пишу код android (kotlin) и пытаюсь проанализировать файл json с помощью URL.
Все работает нормально, когда он приходит с запросом, но, так как json немного сложнее, я не могу найти способ получить свою информацию правильно.
Каждый раз, когда я получаю JSON Исключительная ошибка или ошибка, говорящая мне, что массив не является примитивным.
Это важная часть моего кода, где случаются маги c.
try {
// Create JSONObject from string response if your response start from Array [ then create JSONArray
val rootJsonObject = JSONObject(results)
val isSucess = rootJsonObject.optString("code")
if (isSucess == "200") {
val streetArray = rootJsonObject.getJSONObject("data").getJSONObject("nearstations")
val mJsonArray = JSONArray(streetArray)
for (i in 0 until mJsonArray.length()) {
val sObject = mJsonArray.getJSONObject(i).toString()
val mItemObject = JSONObject(sObject)
val id = mItemObject.getString("id")
val street_name = mItemObject.getString("street_name")
val mHash = HashMap<String, String>()
mHash["id"] = "Id: $id"
mHash["street_name"] = "Name: $street_name"
streetList.add(mHash)
}
// This is simple Adapter (android widget) for ListView
val simpleAdapter = SimpleAdapter(
applicationContext, streetList,
R.layout.simple_listview_item,
// Add String[] name same as HashMap Key
arrayOf("id", "street_name"),
intArrayOf(R.id.tv_id, R.id.tv_street_name))
Lv_client.adapter = simpleAdapter
Lv_client.setOnItemClickListener { parent, view, position, id ->
Toast.makeText(applicationContext, "Selected item is " + position, Toast.LENGTH_SHORT).show()
}
}
Это небольшая часть JSON из следующих (http://barcelonaapi.marcpous.com/bus/nearstation/latlon/%2041.3985182/2.1917991/1.json)
"code": 200,
"data": {
"nearstations": [
{
"id": "1",
"street_name": "Almogàvers-Àvila",
"city": "BARCELONA",
"utm_x": "432542,5460",
"utm_y": "4583524,2340",
"lat": "41.3985182",
"lon": "2.1917991",
"furniture": "Pal",
"buses": "06 - 40 - 42 - 141 - B25 - N11",
"distance": "0"
},
{
"id": "2721",
"street_name": "Àvila-Almogàvers",
"city": "BARCELONA",
"utm_x": "432641,0420",
"utm_y": "4583509,2710",
"lat": "41.3985182",
"lon": "2.1917991",
"furniture": "Pal",
"buses": "92",
"distance": "0"
},