Gson deserializing nested objects with InstanceCreator Gson deserializing nested objects with InstanceCreator android android

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.