android - Gson Map Key Pair to json -


i want parse json this:

map<pair<string, date>, product> 

since json cannot have pair has key gives me this:

{"android.util.pair@a24f8432":{"name:"name","brand":"brand"....}} 

at point achieve goal i'll have create pair<string, date> object serialize , deserialize methods.

this need help, have no idea how this. have create mypair class extending pair , implementing jsonserializer<pair<string, date>> ...?


thank time!


edit:
i'm trying use typeadapter<t> no luck...

public class mytypeadapter extends typeadapter<pair<string, date>> {  @override public pair<string, date> read(jsonreader jsonreader) throws ioexception {     if (jsonreader.peek() == jsontoken.null) {         jsonreader.nextnull();         return null;     }      string id = jsonreader.nextstring();      date evaluated = null;      try {         evaluated = mysimpledateformat.parse(jsonreader.nextstring());     } catch (parseexception e) {         e.printstacktrace();     }     return new pair<string, date>(id,evaluated); }  @override public void write(jsonwriter jsonwriter, pair<string, date> stringdatepair) throws ioexception {     if (stringdatepair == null) {         jsonwriter.nullvalue();         return;     }     string output = stringdatepair.first + "," + stringdatepair.second;     jsonwriter.value(output); } } 

but when register typeadapter:

type type = new typetoken<pair<string, date>>() {}.gettype(); 


 gsonbuilder builder = new gsonbuilder();     builder.registertypeadapter(type, new mytypeadapter());     gson g = builder.create();     string test = g.tojson(new pair<string, date>("123",new date())); 


this:

builder.registertypeadapter(type, new mytypeadapter()); 

gives me nullpointerexception... why?

thanks.

 gson gson = new gsonbuilder()                 .registertypeadapter(type, new mytypeadapter())                 .enablecomplexmapkeyserialization()                 .create(); 

ok missing importante option:

            .enablecomplexmapkeyserialization() 

http://google-gson.googlecode.com/svn/trunk/gson/docs/javadocs/com/google/gson/gsonbuilder.html#enablecomplexmapkeyserialization%28%29

hope helps!


Comments

Popular posts from this blog

c# - How Configure Devart dotConnect for SQLite Code First? -

c++ - Clear the memory after returning a vector in a function -

erlang - Saving a digraph to mnesia is hindered because of its side-effects -