JsonNullSerializer to send empty string instead of null value – Set them to “empty string”.
In this article, we’re going to look at a more advanced “use-case” of using Jackson to write a custom serializer.
Here are the steps (for Jackson < 2.0):
For Maven
<!– https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core –>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.4</version>
</dependency>
For Gradle
// https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core
compile group: ‘com.fasterxml.jackson.core’, name: ‘jackson-core’, version: ‘2.9.4’
import java.io.IOException;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
public class NullSerializer extends JsonSerializer<Object>
{
@Override
public void serialize(Object o, com.fasterxml.jackson.core.JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, com.fasterxml.jackson.core.JsonProcessingException { jsonGenerator.writeString(“”);
}
}
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.ser.DefaultSerializerProvider;
import com.XXX.NullSerializer;
public class CustomObjectMapper extends ObjectMapper
{
public CustomObjectMapper()
{
super();
DefaultSerializerProvider.Impl sp = new DefaultSerializerProvider.Impl();
sp.setNullValueSerializer(new NullSerializer());
this.setSerializerProvider(sp);
}
}
package com.sfl.is.mfn;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationConfig;
import com.XXX.CustomObjectMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.actuate.autoconfigure.*;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.liquibase.LiquibaseProperties;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import javax.annotation.PostConstruct;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Arrays;
import java.util.Collection;
@ComponentScan
@EnableAutoConfiguration(exclude = { MetricFilterAutoConfiguration.class, MetricRepositoryAutoConfiguration.class })
@EnableConfigurationProperties({ LiquibaseProperties.class, ApplicationProperties.class })
public class NullToEmptyApplication
{
private static final Logger log = LoggerFactory.getLogger(MindfullnessWebApiApp.class);
public NullToEmptyApplication()
{
}
public static void main(String[] args) throws UnknownHostException
{
SpringApplication app = new SpringApplication(NullToEmptyApplication.class);
}
@Bean
public ObjectMapper jacksonObjectMapper()
{
return new CustomObjectMapper();
}
@Bean
public SerializationConfig serializationConfig()
{
return jacksonObjectMapper()
.getSerializationConfig();
}
}
AI & RPA to automate invoices that can deliver…
Explore the different types of Power BI dashboards and…
Benefit from Power Portal and Power Pages to help…
Having an RPA strategy will help you avoid wasting…
Unlike other industries, manufacturing industries are always searching for…
Patient Appointment Scheduling to automate healthcare workflows using RPA…