I consume an API which gives me this type of JSON:
{ "data": { "name": "Start", "pid": "1", "position": { "data": { "x": "31", "y": "330" }, "metadata": "empty" } }, "metadata": "empty" }
I have created the classes with objects with the same structure as the above JSON. I use the retrofit
lib in Android which inside uses GSON
for parsing the JSON.
My model classes would be like this:
MResponse.class
public class MResponse { @SerializedName("data") public User user; String metadata; }
User.class
public class User { public String name; public String pid; @SerializedName("position") public PositionData positionData; }
PositionData.class
public class PositionData { @SerializedName("data") public Position position; public String metadata; }
Position.class
public class Position { public String x; public String y; }
Now this works fine for me. But as you can see for every model I have to create a parent which will have the same structure just changes the child. This fact doubles the classes that I use for my models. I would like to ask if there is a better way to avoid all these classes.
I don't want to use inner classes. I was thinking that the guys that have done the JSON like this must have had a reason why they did it like this and also a way to make the parsing more easier.
Usually I was used to parse this kind of JSON structure:
{ "data": { "name": "Start", "pid": "1", "position": { "x": "31", "y": "330" } } }
And here it's easier if I would follow the solution above.
EDIT
Also any solution in Kotlin is welcomed