I know there's lots of questions about skipping fields with a null value when serializing objects to JSON. I want to skip / ignore fields with null values when deserializing JSON to an object.
Consider the class
public class User {
Long id = 42L;
String name = "John";
}
and the JSON string
{"id":1,"name":null}
When doing
User user = gson.fromJson(json, User.class)
I want user.id
to be '1' and user.name
to be 'John'.
Is this possible with either Gson or Jackson in a general fashion (without special TypeAdapter
s or similar)?
To skip using TypeAdapters, I'd make the POJO do a null check when the setter method is called.
Or look at
The annotation needs to be at Class level, not method level.
For Deserialise you can use following at class level.
@JsonIgnoreProperties(ignoreUnknown = true)
Albeit not the most concise solution, with Jackson you can handle setting the properties yourself with a custom
@JsonCreator
:What i did in my case is to set a default value on the getter
I guess this will be a pain for many fields but it works in the simple case of less number of fields