美文网首页jee
SpringBoot--实战开发--JSON处理(五十六)

SpringBoot--实战开发--JSON处理(五十六)

作者: 无剑_君 | 来源:发表于2019-09-15 09:40 被阅读0次

    一、Maven依来

    <!--jackson依赖 -->
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>2.9.3</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.9.3</version>
    </dependency>
    

    二、Java Long类型过大时,js会丢失经度问题

    1. 定义解析类,进行序列化与反序列化
    @Slf4j
    public class LongJsonDeserializer extends JsonDeserializer<Long> {
    
        @Override
        public Long deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
            String value = jsonParser.getText();
            try {
                return value == null ? null : Long.parseLong(value);
            } catch (NumberFormatException e) {
                log.error("解析长整形错误", e);
                return null;
            }
        }
    }
    
    public class LongJsonSerializer extends JsonSerializer<Long> {
        @Override
        public void serialize(Long value, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException {
            String text = (value == null ? null : String.valueOf(value));
            if (text != null) {
                jsonGenerator.writeString(text);
            }
        }
    }
    
    1. 添加注解
       @JsonSerialize(using = LongJsonSerializer.class)
        @JsonDeserialize(using = LongJsonDeserializer.class)
        private Long id;
    

    三、日期格式

       @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
        private LocalDateTime createTime;
    

    相关文章

      网友评论

        本文标题:SpringBoot--实战开发--JSON处理(五十六)

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