android - Gson deserializing issue -


hi want develope android app , webservice , cannot change it. pull data , when data available this.

field_teaser: { und: [ { value: "some value", format: null } ] } 

but when there no data this

field_teaser: [ ] 

i used code below overcome issue

public class teaserfield implements jsondeserializer<newsteaser> {          @override         public newsteaser deserialize(jsonelement json, type typeoft, jsondeserializationcontext context) throws jsonparseexception {              jsonelement monumentelement = json.getasjsonobject().get("field_teaser");             if(monumentelement==null)                 return  null;             if (monumentelement.isjsonarray()) { //                return new newsteaser((newsund[]) context.deserialize(monumentelement.getasjsonarray(), newsund[].class));                 return null;             } else if (monumentelement.isjsonobject()) {                 return new newsteaser((newsund) context.deserialize(monumentelement.getasjsonobject(), newsund.class));             } else { return null;             }         }     } 

the problem have many fields make such behavior , when want register registertypeadapter first typeadapter.

      gson gson = new gsonbuilder().registertypeadapter(newsteaser.class, new teaserfield()).registertypeadapter(newsbody.class, new bodyfield()).create(); retrofit retrofit = new retrofit.builder()                 .baseurl(url)                 .client(clientbuilder.build())                 .addconverterfactory(gsonconverterfactory.create(gson))              .create()))                 .build(); 

actually if somehow tell gson if encounter [] in situation return null happy.


Comments

Popular posts from this blog

python - Operations inside variables -

Generic Map Parameter java -

arrays - What causes a java.lang.ArrayIndexOutOfBoundsException and how do I prevent it? -