本文主要是介绍在Kotlin中使用TypeToken配合Gson,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在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>() {}.typefun json(str:String){val bean = Gson().fromJson(nice, dataNice::class.javaObjectType)val turnsType = genericType<List<dataNice>>()}
这篇关于在Kotlin中使用TypeToken配合Gson的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!