美文网首页
springboot处理jackson序列化

springboot处理jackson序列化

作者: 三斤牛肉 | 来源:发表于2018-11-24 00:08 被阅读216次

springmvc的json序列化输出是最基本的技能了。这里讲几个springboot2.X中的通用格式化方式。

bootstrap配置

spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
这是最简单的,但是支持的比较少。具体有哪些配置可以找些别的文档。一般用的比较多的就是时间格式了

@JsonComponent

@JsonComponent
public class BigDecimalJsonComponent {

    public static class BigDecimalJsonSerializer extends JsonSerializer<BigDecimal> {

        @Override
        public void serialize(BigDecimal decimal, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
            if (decimal!=null) {
                jsonGenerator.writeString(decimal.setScale(2,BigDecimal.ROUND_HALF_UP).toString());
            }
        }
    }

    public static class BigDecimalJsonDeserializer extends JsonDeserializer<BigDecimal> {


        @Override
        public BigDecimal deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
            return null;
        }
    }
}

这种方式应该是最全的了,只要注解@JsonComponent,并定义序列化/反序列化的类就可以了(只定义其中一种也行)。具体的可以参见springboot文档

interface Jackson2ObjectMapperBuilderCustomizer

@FunctionalInterface
public interface Jackson2ObjectMapperBuilderCustomizer {

    /**
     * Customize the JacksonObjectMapperBuilder.
     * @param jacksonObjectMapperBuilder the JacksonObjectMapperBuilder to customize
     */
    void customize(Jackson2ObjectMapperBuilder jacksonObjectMapperBuilder);

}

这个方式应该是直接对objectMapper进行处理了,本人没试过这种方式。

相关文章

网友评论

      本文标题:springboot处理jackson序列化

      本文链接:https://www.haomeiwen.com/subject/hffeqqtx.html