android - Is retrofit supports keypath in json parsing or how to to this? -
for example have json looks like:
{ "data": [ { "name": "one" }, { "name": "two" } ] } for example have object user field name.
is possible write method parse data array objects user?
something
call<list<user>> getusers(@keypath("data")) now this, need create wrapper class like
public class userswrapper { @serializename("data") public arraylist users; }
and in service next
public interface service { @get("users") call<userswrapper> getusers() } but requests response data variable objects in array.
in case need create wrappers data requests. pain :(
?
i'd way:
global class wrapper<t> parse whole json
public class wrapper<t> { public list<t> data; } and user parse actual array;
public class user { public string name; } then, api interface:
@get("/people") wrapper<user> getusers(); and in datasource class this:
@override public list<user> getusers() { wrapper<user> userswrapper = myapiinterface.getusers(); return userswrapper.data; } upd1:
solution create custom jsondeserializer (like described here) list<user> type, register registertypeadapter custom gson object , can deserialise json directly list<user>. though, solution brings more code , potential benefit unclear me.
Comments
Post a Comment