Example usage for com.fasterxml.jackson.databind ObjectMapper setSerializerProvider

List of usage examples for com.fasterxml.jackson.databind ObjectMapper setSerializerProvider

Introduction

In this page you can find the example usage for com.fasterxml.jackson.databind ObjectMapper setSerializerProvider.

Prototype

public ObjectMapper setSerializerProvider(DefaultSerializerProvider p) 

Source Link

Document

Method for setting specific SerializerProvider to use for handling caching of JsonSerializer instances.

Usage

From source file:com.acmemotors.batch.LoaderJobConfiguration.java

@Bean
@StepScope/*  w  w  w .  ja  v  a2s.com*/
public ItemProcessor<Map<String, Object>, String> processor(
        @Value("#{jobParameters['delay']}") final long delay) {
    return item -> {
        DefaultSerializerProvider provider = new DefaultSerializerProvider.Impl();

        provider.setNullValueSerializer(new JsonSerializer<Object>() {
            @Override
            public void serialize(Object value, JsonGenerator jgen, SerializerProvider provider)
                    throws IOException {
                if (value == null) {
                    jgen.writeString("");
                } else {
                    if (value instanceof String) {
                        jgen.writeString((String) value);
                    } else {
                        if (value instanceof Integer) {
                            jgen.writeNumber((Integer) value);
                        } else {
                            jgen.writeNumber((Double) value);
                        }
                    }
                }
            }
        });

        ObjectMapper mapper = new ObjectMapper();
        mapper.setSerializerProvider(provider);

        String processedItem = mapper.writeValueAsString(item);

        Thread.sleep(delay);

        return processedItem;
    };
}