I have the following json
{ "id": "1111", "match": { "username1": { "id": "1234", "name": "alex" }, "username2": { "id": "5678", "name": "munch" } } }
To deserialise it I have the following data model class..
class json{ String id; Match match; } class Match { private Map<String,Profile> profiles } class Profile{ private String id; private String name; }
I am not getting any deserialisation error when I am using gson but the
profiles
variable is coming as null.
This is how I am deserializing
var json = gson.fromJson(data,json.class)
inside the match
object there can be dynamic number of usernames not just two . Why am I getting profile
object as null and how can I correctly populate it ?
Making changes to json is the last resort here. I can make any other required changes.
Answer
The issue is your model. You don’t need Match
because profiles
does not really exist in your JSON. You just json
(this one with small changes) and Profile
:
class json{ String id; Map<String,Profile> match; }
This will work.