zoukankan      html  css  js  c++  java
  • JSONObject.fromObject() 转string时,实体里面的时间错乱的问题

      在把要入库的数据实体转成JSON字符串发给kafka的时候,出现了问题,转换完以后,就变成这样子的了,真的是第一次见到这种,真的是长见识了

      然后百度了一下:https://www.cnblogs.com/LiuChunfu/p/4917934.html,找到了大佬的解决方式,

     

    import net.sf.json.JsonConfig;
    import net.sf.json.processors.JsonValueProcessor;
    
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.Locale;
    
    public class JsonDateValueProcessor implements JsonValueProcessor {
        private String format ="yyyy-MM-dd HH:mm:ss";
    
        public JsonDateValueProcessor() {
            super();
        }
    
        public JsonDateValueProcessor(String format) {
            super();
            this.format = format;
        }
    
        @Override
        public Object processArrayValue(Object paramObject,
                                        JsonConfig paramJsonConfig) {
            return process(paramObject);
        }
    
        @Override
        public Object processObjectValue(String paramString, Object paramObject,
                                         JsonConfig paramJsonConfig) {
            return process(paramObject);
        }
    
    
        private Object process(Object value){
            if(value instanceof Date){
                SimpleDateFormat sdf = new SimpleDateFormat(format,Locale.CHINA);
                return sdf.format(value);
            }
            return value == null ? "" : value.toString();
        }
    
    }

    然后应用

    JsonConfig jsonConfig = new JsonConfig();
                        jsonConfig.registerJsonValueProcessor(Date.class, new JsonDateValueProcessor());
                        JSONObject json = new JSONObject();
                        //实体转为JSON
                        String s = json.fromObject(moveCarEntity, jsonConfig).toString();

    虽然能解决问题,但是不能满足我这边的需求哈,我这边要求传过去的数据要为时间戳,而不是"yyyy-MM-dd HH:mm:ss",所以这种方式不适合。

    解决办法:

      1.将实体的时间类型为DAte该为String

      2.然后创建时间我一般都是写new Date(),这样得到的:Mon Dec 24 10:14:44 CST 2018,可以写成这样new Date().getTime()+""

     这样时间就不会错乱了。赶紧记录一下,

  • 相关阅读:
    python连接字符串的几种方法--转子(香草拿铁的园子)
    winform属性
    C# Timer
    SQL基础
    SQL 基础
    File类 ReadAllBytes() ReadAllLines() ReadAllText()
    学习C#20天有感
    装箱和拆箱
    机器学习基础:朴素贝叶斯小结
    分类问题样本不均衡问题
  • 原文地址:https://www.cnblogs.com/lkeji388/p/10167179.html
Copyright © 2011-2022 走看看