Browse Source

更新文档

drake 4 years ago
parent
commit
48389dd801
1 changed files with 9 additions and 17 deletions
  1. 9 17
      docs/parse-list.md

+ 9 - 17
docs/parse-list.md

@@ -63,7 +63,15 @@ scopeNetLife {
 
 这里我推荐的解决方式是, 针对会data会为JSON数组的情况, 我们可以直接使用String创建一个扩展函数
 
-### 1) 定义解析函数
+### 1) 摘取字段
+
+你要保证`await()`返回的只有data的值, 而不是完整Json, 因为Json字符串必须和数据类字段匹配才能解析成功(这是解析JSON的常识和网络请求无关) <br>
+
+重写`convert`函数, 让转换器仅返回`data`
+
+<img src="https://i.loli.net/2020/10/31/R1y2Yrk8VpZADq4.png" width="600"/>
+
+### 2) 定义解析函数
 
 创建一个顶层函数(即在类之外的函数, 直接存在kt文件中)
 ```kotlin
@@ -80,22 +88,6 @@ inline fun <reified T> String.toJsonArray(): MutableList<T> {
 }
 ```
 
-> 这里要注意, String你要保证返回的只有data的值, 因为Json字符串必须和数据类字段匹配才能解析成功(这是解析JSON的常识和网络请求无关) <br>
-> 你要么自定义转换器保证返回只有Json的`data`字段值要么就在这个扩展里面先摘取到 `data的值`
-
-转换器返回`data`
-
-<img src="https://i.loli.net/2020/10/31/R1y2Yrk8VpZADq4.png" width="600"/>
-
-
-扩展函数摘取`data`
-```kotlin
-inline fun <reified T> String.toJsonArray(): MutableList<T> {
-    val data = JSONObject(this).getString("data") // 其实还是建议在转换器返回data, 便于统一错误信息
-    return Gson().fromJson(data, TypeToken.getParameterized(List::class.java, T::class.java).type)
-}
-```
-
 ### 2) 创建数据类
 
 ```kotlin