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) } 
  • Constructor de vista personalizada en Android 4.4 se bloquea en Kotlin, ¿cómo solucionarlo?
  • Copia defensiva de una colección mutable en la class de datos Kotlin
  • Kotlin: la expresión 'longitud' de tipo 'Int' no se puede invocar como una function. La function 'invoke ()' no se encuentra
  • Kotlin: ¿Puedes usar arguments con nombre para varargs?
  • Error "Extensión con nombre 'android' no existe" al agregar Kotlin a un proyecto de Android
  • Comparador como lambda
  • cómo hacer una connection selectiva con la api de Google Drive (Android)
  • ¿Cómo save una reference de function como el valor en un tipo de Mapa e invocarlo con un parámetro más adelante en Kotlin?
  • Complemento de IntellJ IDEA Kotlin: "no hay configuradores disponibles"
  • ¿Cuál es la política de compatibilidad de Kotlin?
  • Configurando "build.gradle" para el module Kotlin en Android Studio