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) } 
  • Manera idiomática de manejar lists anulables o vacías en Kotlin
  • Clase plotble de Kotlin lanzando ClassNotFoundException
  • Compara una vista de text con una string en Kotlin
  • Cómo ejecutar Kotlin Koans en IntelliJ? ¿Cuál es la "class principal"?
  • La versión 1.1.4-eap-77 de Kotlin no funciona
  • Recarga de la class Kotlin con objects / funciones complementarios
  • Dagger 2 con Kotlin, regresando el tipo con generic en ApplicationComponent
  • Rx Java Retrofit con flatMap se ejecuta solo una vez
  • Kotlin - "No me importa" en desugaring de la class de datos
  • ¿Cómo especifico que un campo encuadrado puede ser anulable en mi código de migration de Realm?
  • "Algunas bibliotecas de Kotlin conectadas a este proyecto tienen un formatting no compatible. Actualice las bibliotecas o el complemento"