¿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

  • ¿Cómo hacer un grupo? ¿Por qué coleccionar usando RxJava y Kotlin?
  • OnComplete nunca se llamó con toSortedList () y groupBy ()
  • Comportamiento con Kotlin Higher-Order Functions e interfaces de método único?
  • Kotlin con stack RxKotlinFX da un error de class de acceso
  • Inyectar constructor y object complementario
  • Llamada asincrónica para cada elemento dentro de una colección
  • No se puede cambiar el text de ActionMenuItemView con RxKotlin
  • No se puede 'observar en' hilo principal con RxKotlin
  • Rx-Kotlin awaitTerminalEvent nunca se sube a Completo
  • Obligatorio <Objeto> y encontrado <Objeto>?
  • La biblioteca de Kotlin 'rxkotlin-0.21.0.jar' tiene un formatting no compatible. Actualice la biblioteca o el complemento