I have to parse a webservice with gson that has a key associated sometimes with a JsonObject (ie Elements) :
"elements": {
"sheets": 1,
"questions": 6
}
sometimes with an array...
"elements": [
{
"_id": "51824208fbca3b0398c8374a",
"collection": "medias",
"name": "Document Powerpoint",
"customNameInModule": true
},
{....}
]
So In my model that contains this element I have to type it with JsonElement.
@SerializedName("elements")
@Expose
private JsonElement elements;
My idea was then to build my accessors this way :
private List < Element > listElement;
public List < Element > getListElements() {
if (listElement == null) {
Type listType = (new TypeToken < List < Element >> () {}).getType();
listElement = (new Gson()).fromJson(elements.toString(), listType);
return listElement;
} else {
return listElement;
}
}
private ElementsObject objectElement;
public ElementsObject getObjectElement() {
if (objectElement == null) {
objectElement = (new Gson()).fromJson(elements.toString(), ElementsObject.class);
return objectElement;
} else {
return objectElement;
}
}
but now my model is no longer Serializable..
java.lang.RuntimeException: Parcelable encountered IOException writing serializable object
What should I do ?
Thanks,