¿Cómo leer JSON desde Url usando kotlin Android?

Estoy usando kotlin para desarrollar la aplicación. Ahora quiero get datos JSON del server.

En Java, implementé Asyntask y Rxjava para leer JSON de Url. También busco en google pero no puedo get los detalles adecuados para mi requerimiento.

¿Cómo puedo leer JSON desde Url usando kotlin?

Prueba esto

fun parse(json: String): JSONObject? { var jsonObject: JSONObject? = null try { jsonObject = JSONObject(json) } catch (e: JSONException) { e.printStackTrace() } return jsonObject } 

Puede usar la biblioteca Volley o Retrofit en Kotlin. En realidad, puede usar todas las bibliotecas de Java en Kotlin.

El voleo es más fácil pero se adapta más rápido que el volante. Tu elección.

Enlace de Volley

Retrofit Link

Finalmente recibo respuesta de Aquí

Lea los datos de Json utilizando las extensiones de Android Retrofit 2.0 RxJava, RxAndroid, Kotlin.

  fun provideRetrofit(): Retrofit { return Retrofit.Builder() .baseUrl("https://www.example.com") .addConverterFactory(MoshiConverterFactory.create()) .build() } 

Módulo

 interface Api { @GET("/top.json") fun getTop(@Query("after") after: String, @Query("limit") limit: String): Call<NewsResponse>; } 

Supongo que estás tratando de leer la respuesta de una API de server, que esperas que sea una cadena con JSON. Para hacerlo, puedes usar:

 val apiResponse = URL("yourUrl").readText() 

De los documentos :

Lee el contenido completo de esta URL como una cadena usando UTF-8 o el juego de caracteres especificado.

Este método no se recomienda en files grandes.

Tenga en count que, si usa esto dentro de una actividad de Android, la aplicación se bloquea porque está bloqueando el hilo principal con una llamada asincrónica. Para evitar que la aplicación se bloquee, te recomiendo que uses Anko . Más precisamente, solo tiene que agregar la dependencia de los comunes, no toda la biblioteca.

Puedes encontrar más información en esta publicación de blog

  • Agregar subscribeOn () está cambiando el tipo de retorno de observable
  • Inyectar constructor y object complementario
  • Cómo comprimir algunos observables en lenguaje Kotlin con RxAndroid
  • Confusión de la syntax de Kotlin lambda
  • RxJava2 Tal vez devuelva Observable vacío si no hay elemento
  • Rx-Kotlin awaitTerminalEvent nunca se sube a Completo
  • RxKotlin - matriz de observadores dynamics
  • Spring 5 and Kotlin 1.1 Coroutines: Type rx.Scheduler no presente
  • Repetir acciones en estado con RxJava
  • La biblioteca de Kotlin 'rxkotlin-0.21.0.jar' tiene un formatting no compatible. Actualice la biblioteca o el complemento
  • ¿Expresar "súper" generics en los types funcionales de Kotlin?