在Kotlin中使用TypeToken配合Gson

在java中,我们是这样使用的:

 Type type = new TypeToken() {
        }.getType();

然后使用Gson去解析对象:

gson.fromJson(json, type);

在Kotlin中:
第一种方式:

val turnsType = object : TypeToken>() {}.type
val turns = Gson().fromJson>(pref.turns, turnsType) 

解析
第二种方式:更方便

inline fun  genericType() = object: TypeToken() {}.type
val turnsType = genericType>()
 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() {}.type
//    val turns = Gson().fromJson(nice, turnsType) //解析

    inline fun  genericType() = object: TypeToken() {}.type

    fun json(str:String){
        val bean = Gson().fromJson(nice, dataNice::class.javaObjectType)
    val turnsType = genericType>()
    }

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