如何使用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依赖项,而不是整个库。
您可以在此博客文章中找到更多信息
- 访问android.os.storage.StorageVolume
- Kotlin Date.daysAfter函数具有相同参数的不同返回值
- Kotlin:功能类型不匹配
- 如何使用Kotlin设置OnEditorActionListener
- Osmdroid&Osmdroid bonuspack如何使用CacheManager
- 当从kotlin调用java活动结果时,onActivityResult不会被调用
- Kotlin:“fun main(parameters:Array <String>)”中的默认参数如何在不指定任何值的情况下打印“guest”
- 除非明确引用,否则Kotlin无法识别参数
- 如果在构造函数中定义类属性,如何编写自定义getter?