如何使用kotlin Android从Url读取JSON?

我正在使用kotlin开发应用程序。现在我想从服务器获取JSON数据。

在Java中实现了Asyntask以及Rxjava从Url读取JSON。 我也搜索谷歌,但我无法得到我的要求适当的细节。

如何使用kotlin从Url读取JSON?

尝试这个

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

您可以在Kotlin中使用Volley或Retrofit库。实际上,您可以使用Kotlin中的所有Java库。

排气更容易,但比Volley.Your的选择更快。

齐射链接

改造链接

最后从这里得到答案

使用Retrofit 2.0 RxJava,RxAndroid,Kotlin Android扩展阅读Json数据。

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

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

我想你正试图读取服务器API的响应,你希望这是一个JSON字符串。 为此,您可以使用:

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

从文档 :

使用UTF-8或指定的字符集将该URL的全部内容作为字符串读取。

这个方法不建议在大文件上使用。

请注意,如果您在Android活动中使用此应用程序,则应用程序崩溃是因为您使用异步调用阻止了主线程。 为了避免应用程序崩溃,我建议您使用Anko 。 更确切地说,你只需要添加commons依赖项,而不是整个库。

您可以在此博客文章中找到更多信息