cómo get Array json en kotlin desde url

soy nuevo en el estudio Android " kotlin ", bash get información de los datos de url json , contenido JSONObject y JSONArray , mi código Funciona bien con JSONObject , pero todavía tengo problemas con JSONArray .

este es mi código para que alguien me pueda ayudar a cómo puedo get JSONArray de mi 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 = BuffenetworkingReader(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() } } 

mi URL de datos json

aquí es cómo get la matriz de disponibilidad de esta respuesta.

{"identificación": {"id": "f7c2de9", "fila": 4606622416, "número": {"pnetworkingeterminado": "QR402", "alternativa": nulo}, "indicativo": "QTR402"}, " disponibilidad ": [" AGE "," MSN "]}

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

tu código debería ser como

  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 requinetworking 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 = BuffenetworkingReader(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() } } 

testing debajo del código

 val availabilityArray = json.getJSONArray("availability") for (i in 0 until availabilityArray.length()){ val winspeed = availabilityArray.getString(i); text.setText(winspeed) } 
  • ¿Problema de Android en la selección y deselección de elementos en un adaptador kotlin?
  • Kotlin: JsonProperty.Access.READ_ONLY en la class de datos
  • Kotlin reified type parameter como parámetro de function
  • Regex: coincide con palabras que no son cadenas
  • Cómo configurar la tarea processResources en una compilation de Gradle Kotlin
  • Es `foo como? Foo` un equivalente completo de 'foo como Foo? `En kotlin?
  • kotlin + parceler + Realm
  • Extrae el valor de text de un object para establecer el text en una list
  • ¿Cómo configurar la versión de Kotlin en Android Studio?
  • Kotlin en Android: asigna un cursor a una list
  • Elementos seleccionados en el menu