我試圖反序列化類型如何使用GSON
ArrayList<Pair<OuterData, ArrayList<InnerData>>>
的對象序列化的對ArrayList的地方OuterData
和InnerData
使用GSON的POJO。
我已經盡力了,但我無法做到。我越來越
java.lang.ClassCastException:com.google.gson.internal.LinkedTreeMap 不能轉換到 v2015.oasis.pilani.bits.com.home.events.inner.InnerData
每當我試圖用做new Gson().fromJson(json, type);
,其中從TypeToken獲得式
new TypeToken<ArrayList<Pair<OuterData, ArrayList<InnerData>>>>(){}.getType()
我雖然使用類型將解決我的問題,因爲最初我不想使用它,但它沒有。任何幫助表示讚賞。
編輯:這裏是OuterData
和InnerData
類(在科特林)
data class InnerData(val name: String,
val category: String,
val categoryIcon: Int,
val description: String,
val rules: String,
val time: String,
val date: String,
val venue: String,
val notifyState: Boolean,
val notifyTime: Int,
val favouriteState: Boolean)
data class OuterData(val heading: String, val color: Int)
我使用GSON只序列化的數據。所以反序列化使用的是使用gson序列化的相同的json。
EDIT2:序列化JSON數據:這是使用GSON
[
{
"first": {
"color": -65281,
"heading": "October 01"
},
"second": [
{
"category": "",
"categoryIcon": 17301533,
"date": "",
"description": "sfd",
"favouriteState": false,
"name": "sdfds",
"notifyState": false,
"notifyTime": 0,
"rules": "",
"time": "",
"venue": ""
}
]
},
{
"first": {
"color": -65281,
"heading": "November 01"
},
"second": [
{
"category": "",
"categoryIcon": 17301533,
"date": "djfkd",
"description": "klddjflk",
"favouriteState": false,
"name": "jkl",
"notifyState": false,
"notifyTime": 0,
"rules": "",
"time": "sdkjfk",
"venue": "ldkfjf"
}
]
},
{
"first": {
"color": -16175867,
"heading": "October 31"
},
"second": [
{
"category": "Event Category",
"categoryIcon": 17301533,
"date": "31-10-2017",
"description": "Event Description",
"favouriteState": false,
"name": "Event name",
"notifyState": false,
"notifyTime": 0,
"rules": "Events Rules",
"time": "13:55",
"venue": "Event Venue"
},
{
"category": "",
"categoryIcon": 17301533,
"date": "",
"description": "",
"favouriteState": false,
"name": "dsf",
"notifyState": false,
"notifyTime": 0,
"rules": "",
"time": "",
"venue": ""
},
{
"category": "",
"categoryIcon": 17301533,
"date": "",
"description": "",
"favouriteState": false,
"name": "",
"notifyState": false,
"notifyTime": 0,
"rules": "",
"time": "",
"venue": ""
},
{
"category": "",
"categoryIcon": 17301533,
"date": "",
"description": "",
"favouriteState": false,
"name": "",
"notifyState": false,
"notifyTime": 0,
"rules": "",
"time": "",
"venue": ""
},
{
"category": "",
"categoryIcon": 17301533,
"date": "",
"description": "",
"favouriteState": false,
"name": "",
"notifyState": false,
"notifyTime": 0,
"rules": "",
"time": "",
"venue": ""
},
{
"category": "",
"categoryIcon": 17301533,
"date": "",
"description": "",
"favouriteState": false,
"name": "",
"notifyState": false,
"notifyTime": 0,
"rules": "",
"time": "",
"venue": ""
},
{
"category": "",
"categoryIcon": 17301533,
"date": "",
"description": "",
"favouriteState": false,
"name": "",
"notifyState": false,
"notifyTime": 0,
"rules": "",
"time": "",
"venue": ""
},
{
"category": "",
"categoryIcon": 17301533,
"date": "",
"description": "",
"favouriteState": false,
"name": "",
"notifyState": false,
"notifyTime": 0,
"rules": "",
"time": "",
"venue": ""
},
{
"category": "",
"categoryIcon": 17301533,
"date": "",
"description": "",
"favouriteState": false,
"name": "",
"notifyState": false,
"notifyTime": 0,
"rules": "",
"time": "",
"venue": ""
}
]
}]
你可以發佈一些示例JSON和你使用的類嗎? – 2017-10-21 09:33:00
我編輯了這個問題。請看一看。 –
你可以請張貼一些JSON嗎? – Ellisan