The three things that I learned today are mentioned below.
Learning 1: Exclude null fields in Spring Boot REST JSON API response
Spring Boot uses Jackson to convert to JSON. Spring Boot allows you to configure through a configuration property whether you want to include null values or not. By default, serialised JSON will include null values as well. To remove null values, you should use following property add it to your application.properties.
spring.jackson.default-property-inclusion=NON_NULL
If you are using Java 8 or Google’s Gauva and want to exclude Optional type as well then you should use NON_ABSENT value.
spring.jackson.default-property-inclusion=NON_ABSENT
To learn about all the values, you should look at Jackson’s com.fasterxml.jackson.annotation.JsonInclude.Include enumeration.
Learning 2: Serializing Enum value with Jackson
The second learning that I had today was around how to properly serialize enum values in Jackson. I had enum shown below
public enum Status {
SUCCESS("success"), ERROR("error");
private final String status;
Status(String status) {
this.status = status;
}
}
I wanted my JSON structure to be as shown below.
{
"status": "success"
}
To achieve that you have to Jackson’s @JsonCreator and @JsonValue annotation as shown below.
public enum Status {
SUCCESS("success"), ERROR("error");
private final String status;
@JsonCreator
Status(String status) {
this.status = status;
}
@JsonValue
public String getStatus() {
return this.status;
}
}
Learning 3: Change remote of a branch in Git
$ git branch develop --set-upstream-to=upstream/develop
You can view remote tracked by local branch using the following command.
$ git branch -lvv
Discover more from Shekhar Gulati
Subscribe to get the latest posts sent to your email.