I have two classes : Player
and Match
.
Player
has two fields, playerId
and name
while Match
contains two Player
objects and matchId
too.
When I serialise Player
I do want the id and the name to appear in the JSON, however when I serialise Match
I get matchId
and Player
‘s non transient fields and their respective values even though I’d like to only get Player
‘s ids
.
How do I do this with Gson?
Advertisement
Answer
You can use Gson’s @Expose annotation to only expose that field. You will have to build your Gson object by calling GsonBuilders excludeFieldsWithoutExposeAnnotation() function.
class Player { @Expose private final int id; //constructor, etc }
Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();