Gson serialization depending on field value

Posted by Serj Lotutovici on Stack Overflow See other posts from Stack Overflow or by Serj Lotutovici
Published on 2014-06-06T21:08:43Z Indexed on 2014/06/06 21:25 UTC
Read the original article Hit count: 194

Filed under:
|
|
|
|

I have a POJO that is similar to:

public class MyGsonPojo {

    @Expose
    @SerializedName("value1")
    private String valueOne;

    @Expose
    @SerializedName("value2")
    private boolean valueTwo;

    @Expose
    @SerializedName("value3")
    private int valueThree;

    // Getters and other stuff here
}

The issue is that this object has to be serialized into a json body for a call to the server. Some fields are optional for the request and if I even send it with default and null values, the API responds differently (Unfortunately changing the api is not an option).

So basically I need to exclude fields from serialization if any of them is set to a default value. For example if the field valueOne is null the resulting json should be:

{
    "value2" : true,
    "value3" : 2
}

Any idea how to make this a painless effort? I wouldn't want to build the json body manually.

Any help would be great. Thank you in advice.

© Stack Overflow or respective owner

Related posts about java

Related posts about android