All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.lsn.spring.bluemedia.payment.domain.serializer.CustomBigDecimalSerializer Maven / Gradle / Ivy

The newest version!
package io.lsn.spring.bluemedia.payment.domain.serializer;

import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;

import java.io.IOException;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;

/**
 * Created by tomek on 24.01.2017.
 */
public class CustomBigDecimalSerializer extends JsonSerializer {

    @Override
    public void serialize(BigDecimal value, JsonGenerator jgen, SerializerProvider provider) throws IOException {
        if (null == value) {
            //write the word 'null' if there's no value available
            jgen.writeNull();
        } else {
            DecimalFormatSymbols bmSymbols = new DecimalFormatSymbols();
            bmSymbols.setDecimalSeparator('.');
            bmSymbols.setGroupingSeparator(' ');

            DecimalFormat df = new DecimalFormat("#,##0.00", bmSymbols);
            df.setMaximumFractionDigits(2);
            df.setMinimumFractionDigits(2);
            df.setGroupingUsed(false);
            final String output = df.format(value);
            jgen.writeNumber(output);
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy