Gson deserializing nested objects with InstanceCreator
Just add a new InstanceCreator
derived class for NewsProvider
like this:
public class NewsProviderInstanceCreator implements InstanceCreator<NewsProvider> { private int context; public NewsProviderInstanceCreator(int context) { this.context = context; } @Override public NewsProvider createInstance(Type type) { NewsProvider np = new NewsProvider(context); return np; }}
and register it into the GsonBuilder
like you have already done, like this:
GsonBuilder gsonBuilder = new GsonBuilder();gsonBuilder.registerTypeAdapter(PageItem.class, new PageItemInstanceCreator(context));gsonBuilder.registerTypeAdapter(NewsProvider.class, new NewsProviderInstanceCreator(context));Gson gson = gsonBuilder.create();PageItem pis[] = gson.fromJson(s, PageItem[].class);
repeat it also for Topic
class.