Intereting Posts
Glide 4.3.1: как использовать ошибку ()? Кинжал 2, не может вводить презентатора в мою деятельность jvm сравнение String с StringBuffer.reverse () всегда не выполняется Почему инициализаторы свойств не вызывают пользовательский сеттер? Массив байтов в Json с использованием топлива и результатов Дублирующие элементы в наборе Котлин: Двойной Колон против Лямбды в подобном классе Использование Kotlin в сопутствующем объекте вызывает непредвиденную ошибку Котлин строит, вызывая JVM к ошибке сегментации JaCoCo возвращается 0% Покрытие с Kotlin и Android 3.0 Линии рисования из ViewModel TornadoFX Vert.x chunked отвечает данными из базы данных с использованием BLOB и спящего режима Установить и получить свойство непосредственно в делегате Почему проверка ссылочного равенства возвращает true, когда ссылка различна Kotlin: вызывается функция обновления пользовательского интерфейса от BroadcastReceiver onReceive

как получить Array json в kotlin от url

Я новичок в android studio « kotlin », пытаюсь получить информацию из данных url json , содержимое JSONObject и JSONArray , мой код. Работа с JSONObject , но у меня все еще есть проблема с JSONArray .

это мой код для любого, кто может мне помочь, как получить JSONArray с моего URL-адреса

  fun buclick(view:View){ val flightSearch=editText2.text.toString() val url="xxxxxxx-flight=$flightSearch" MyAsyncTask().execute(url) } inner class MyAsyncTask:AsyncTask<String,String,String>(){ override fun onPreExecute() { super.onPreExecute() } override fun doInBackground(vararg p0: String?): String { //تمرير بيانات هنا try { val url=URL(p0[0]) val urlConnect = url.openConnection() as HttpURLConnection urlConnect.connectTimeout=500 val dataJsonAsString=convertStreanToString(urlConnect.inputStream) publishProgress(dataJsonAsString) }catch (ex:Exception){ } return "" } override fun onProgressUpdate(vararg values:String?) { val json=JSONObject(values[0]) val query= json.getJSONObject("identification") val sunrise=query.getString("id") flighttext.text="sunrise time" + sunrise } override fun onPostExecute(result: String?) { super.onPostExecute(result) } fun convertStreanToString(inputStream:InputStream):String{ val bufferReader = BufferedReader(InputStreamReader(inputStream)) var line:String var allstring:String="" try { do { line=bufferReader.readLine() if(line!=null) allstring+=line }while (line!=null) bufferReader.close() }catch (ex:Exception){} return allstring } } //مالنا شغل ببيها override fun onBackPressed() { if (drawer_layout.isDrawerOpen(GravityCompat.START)) { drawer_layout.closeDrawer(GravityCompat.START) } else { super.onBackPressed() } } 

мои данные json url

вот как получить массив доступности из этого ответа.

{"идентификация": {"id": "f7c2de9", "row": 4606622416, "number": {"default": "QR402", "alternative": null}, "позывной": "QTR402"}, доступность ": [" ВОЗРАСТ "," MSN "]}

  val json=JSONObject(values[0]) val availabilityArray = json.getJSONArray("availability") 

ваш код должен быть похож

  fun buclick(view:View){ val flightSearch=editText2.text.toString() val url="xxxxxxx-flight=$flightSearch" MyAsyncTask().execute(url) } inner class MyAsyncTask:AsyncTask<String,String,String>(){ override fun onPreExecute() { super.onPreExecute() } override fun doInBackground(vararg p0: String?): String { //تمرير بيانات هنا try { val url=URL(p0[0]) val urlConnect = url.openConnection() as HttpURLConnection urlConnect.connectTimeout=500 val dataJsonAsString=convertStreanToString(urlConnect.inputStream) publishProgress(dataJsonAsString) val json=JSONObject(dataJsonAsString); ///here is the required array val availabilityArray = json.getJSONArray("availability") val query= json.getJSONObject("identification") val sunrise=query.getString("id") flighttext.text="sunrise time" + sunrise }catch (ex:Exception){ } return "" } override fun onProgressUpdate(vararg values:String?) { //update progressbar } override fun onPostExecute(result: String?) { super.onPostExecute(result) } fun convertStreanToString(inputStream:InputStream):String{ val bufferReader = BufferedReader(InputStreamReader(inputStream)) var line:String var allstring:String="" try { do { line=bufferReader.readLine() if(line!=null) allstring+=line }while (line!=null) bufferReader.close() }catch (ex:Exception){} return allstring } } //مالنا شغل ببيها override fun onBackPressed() { if (drawer_layout.isDrawerOpen(GravityCompat.START)) { drawer_layout.closeDrawer(GravityCompat.START) } else { super.onBackPressed() } } 

попробуйте под кодом

 val availabilityArray = json.getJSONArray("availability") for (i in 0 until availabilityArray.length()){ val winspeed = availabilityArray.getString(i); text.setText(winspeed) }