个人笔记:Kotlin使用OKHttp解析Json文件

在进行网络请求前需要做以下几件事:

1.导入依赖

implementation 'com.squareup.okhttp3:okhttp:4.8.1'

2.添加网络请求

需要在AndroidManifest.xml 中添加如下代码,不然无法进行网络请求

3.如果是发送http请求需要在res文件夹下创建一个network.xml,编写如下代码



    

然后在AndroidManifest.xml 中的application中添加

android:networkSecurityConfig="@xml/network"

如果是https请求则可以忽略第三步。

至此,才能过正确发送请求,接下来将以一段具体json文本做演示

个人笔记:Kotlin使用OKHttp解析Json文件_第1张图片

上图就是需要进行解析的json文件

首先需要在activity中写发送请求的方法(记得要在onCreate中调用sendRequestWithOkHttp方法)

private fun sendRequestWithOkHttp() {
            thread {
                val client = OkHttpClient()
                val request = Request.Builder()
                    .url("http:******")
                    .build()
                val response = client.newCall(request).execute()
                val responseData = response.body?.string()
                if (responseData != null) {
                    parseJSONWithJSONObject(responseData)
                }
            }

    }

 然后再编写一个parseJSONWithJSONObject方法用于解析接受到的json文件

private fun parseJSONWithJSONObject(jsonData:String) {
                try {
                    val jsonObject = JSONObject(jsonData)
                    val data = jsonObject.optString("data")
                    val jsonContent = JSONObject(data)
                    val id = jsonContent.optString("id")
                    val creatTime = jsonContent.optString("createTime")
                    val content = jsonContent.optString("content")
                    val cover = jsonContent.optString("cover")
                    Log.d("id",id)
                    Log.d("createtime",createTime)                                 
                } catch (e: Exception) {
                    e.printStackTrace()
                }
        
        }

需要注意的是上述示例json中的内容是一个嵌套类型,具体内容都是放在data中的,所以要先拿到第一层data中的内容,再对data进行解析。

到这一步就能在控制台看到解析到的具体内容了。

你可能感兴趣的:(android,kotlin)