zoukankan      html  css  js  c++  java
  • 处理fastJson 序列化时间问题

    解决方案:使用 jackson

    1.创建utils类

    package com.mybatis.plus.utils;
    
    import com.fasterxml.jackson.annotation.JsonInclude;
    import com.fasterxml.jackson.core.JsonParser;
    import com.fasterxml.jackson.core.JsonProcessingException;
    import com.fasterxml.jackson.databind.DeserializationFeature;
    import com.fasterxml.jackson.databind.ObjectMapper;
    import com.fasterxml.jackson.databind.SerializationFeature;
    import lombok.NonNull;
    import lombok.extern.slf4j.Slf4j;
    
    @Slf4j
    public class JsonUtils {
    
        private static ObjectMapper mapper = new ObjectMapper();
    
        static {
            // 对于空的对象转json的时候不抛出错误
            mapper.disable(SerializationFeature.FAIL_ON_EMPTY_BEANS);
            // 允许属性名称没有引号
            mapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);
            // 允许单引号
            mapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true);
            // 设置输入时忽略在json字符串中存在但在java对象实际没有的属性
            mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
            // 设置输出时包含属性的风格
            mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
        }
    
    
        /**
         * 序列化,将对象转化为json字符串
         *
         * @param data
         * @return
         */
        public static String toJsonString(Object data) {
            if (data == null) {
                return null;
            }
    
            String json = null;
            try {
                json = mapper.writeValueAsString(data);
            } catch (JsonProcessingException e) {
                log.error("[{}] toJsonString error:{{}}", data.getClass().getSimpleName(), e);
            }
            return json;
        }
    
    
        /**
         * 反序列化,将json字符串转化为对象
         *
         * @param json
         * @param clazz
         * @param <T>
         * @return
         */
        public static <T> T parse(@NonNull String json, Class<T> clazz) {
            T t = null;
            try {
                t = mapper.readValue(json, clazz);
            } catch (Exception e) {
                log.error(" parse json [{}] to class [{}] error:{{}}", json, clazz.getSimpleName(), e);
            }
            return t;
        }
    
    }

    调用效果

    ⎛⎝官萧何⎠⎞一只快乐的爪哇程序猿;公司官网:www.csbwbd.com;邮箱:1570608034@qq.com
  • 相关阅读:
    error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
    Ubuntu更换python默认版本
    Ubuntu pip版本的安装,卸载,查看,更新
    android底部导航栏小结
    jdk核心库中使用到的设计模式
    行为型-责任链模式(Chain of Responsibility)
    行为型-访问者模式(Visitor)
    结构型-迭代器模式(Adapter)
    行为型-观察者模式(Observer)
    设计模式-模式目录
  • 原文地址:https://www.cnblogs.com/guanxiaohe/p/14705836.html
Copyright © 2011-2022 走看看