原因:
在对象A的属性中有list对象B,在使用Gson反序列化时对象B无法正确反序列化。反序列化出来的值都是LinkedTreeMap
解决办法,自定义工具类:
import com.google.gson.{Gson, JsonArray, JsonParser}
import scala.collection.mutable.ArrayBuffer
class GsonString2ModeUtil[T] {
def fromJsonList(json: String, cls: Class[T]): ArrayBuffer[T] = {
val arrayBuffer: ArrayBuffer[T] = new ArrayBuffer[T]()
val jsonArrays: JsonArray = new JsonParser().parse(json).getAsJsonObject.get("array").getAsJsonArray
for (i <- 0 until jsonArrays.size()) {
arrayBuffer += new Gson().fromJson(jsonArrays.get(i).toString, cls)
}
arrayBuffer
}
努力吧 皮卡丘