pull/32/head
GKF 6 years ago
parent 12c6d64a51
commit 1d93529aef
  1. 31
      app/src/main/java/io/legado/app/utils/GsonExtensions.kt

@ -1,5 +1,34 @@
package io.legado.app.utils
import android.text.TextUtils
import com.google.gson.Gson
import com.google.gson.GsonBuilder
import com.google.gson.JsonParser
inline fun <reified T> Gson.fromJson(json: String) = fromJson(json, T::class.java)
inline fun <reified T> Gson.fromJson(json: String): T = fromJson(json, T::class.java)
inline fun <reified T> Gson.arrayFromJson(json: String): ArrayList<T>? = kotlin.run {
var result: ArrayList<T>? = null
if (!TextUtils.isEmpty(json)) {
val gson = GsonBuilder().create()
try {
val parser = JsonParser()
val jArray = parser.parse(json).asJsonArray
jArray?.let {
result = java.util.ArrayList()
for (obj in it) {
try {
val cse = gson.fromJson(obj, T::class.java)
result?.add(cse)
} catch (e: Exception) {
e.printStackTrace()
}
}
}
} catch (e: Exception) {
e.printStackTrace()
}
}
return result
}
Loading…
Cancel
Save