在java中,我们是这样使用的:
Type type = new TypeToken<Result>() {
}.getType();
然后使用Gson去解析对象:
gson.fromJson(json, type);
在Kotlin中:
第一种方式:
val turnsType = object : TypeToken<List<Turns>>() {}.type
val turns = Gson().fromJson<List<Turns>>(pref.turns, turnsType)
解析
第二种方式:更方便
inline fun <reified T> genericType() = object: TypeToken<T>() {}.type
val turnsType = genericType<List<Turns>>()
var nice ="\"success\":true,\"errorMsg\":\"\",\"result\":{\"rShipmentLists\":[{\"gasdescatthattime\":\"矿泉水\",\"gasidatthattime\":15,\"count\":1}],\"rSendDetails\":[{\"affectCompName\":\"江岳公司\",\"gasIdAtThattime\":15,\"gasDescAtThattime\":\"矿泉水\",\"bottleSendCount\":1,\"bottleBackCount\":1,\"bottleSendCountAndDetail\":{\"count\":1,\"rNumberDetails\":[{\"number\":\"910000157\"}]},\"bottleBackCountAndDetail\":{\"count\":1,\"rNumberDetails\":[{\"number\":\"910000115\"}]}}],\"rBackShipmentLists\":[{\"gasdescatthattime\":\"矿泉水\",\"gasidatthattime\":15,\"count\":1}]}}"
// val turnsType = object : TypeToken<dataNice>() {}.type
// val turns = Gson().fromJson<dataNice>(nice, turnsType) //解析
inline fun <reified T> genericType() = object: TypeToken<T>() {}.type
fun json(str:String){
val bean = Gson().fromJson(nice, dataNice::class.javaObjectType)
val turnsType = genericType<List<dataNice>>()
}