zoukankan      html  css  js  c++  java
  • fastjson对Date的处理

    对日期的序列化:

    一种方法是通过注解

    Java代码

    1
    2
    @JSONField (format="yyyy-MM-dd HH:mm:ss")  
    public Date birthday;

    另一种是通过SerializeConfig:

    Java代码  收藏代码

    1
    2
    3
    4
    5
    6
    private static SerializeConfig mapping = new SerializeConfig();  
    private static String dateFormat;  
    static {  
        dateFormat = "yyyy-MM-dd HH:mm:ss";  
        mapping.put(Date.classnew SimpleDateFormatSerializer(dateFormat));  
    }

    json字符串中使用单引号:

    String text = JSON.toJSONString(object, SerializerFeature.UseSingleQuotes);

    字段显示不同的key:

    1
    2
    3
    4
    5
    6
    7
    public class User {  
        @JSONField(name="ID")  
        public int getId() { ... }  
    }  
        
    User user = ...;  
    JSON.toJSONString(user); // {"ID":001}

    自定义序列化代码示例:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    public class JsonUtil {  
        private static SerializeConfig mapping = new SerializeConfig();  
        private static String dateFormat;  
        static {  
            dateFormat = "yyyy-MM-dd HH:mm:ss";  
        }  
       
        /** 
         * 默认的处理时间 
         *  
         * @param jsonText 
         * @return 
         */  
        public static String toJSON(Object jsonText) {  
            return JSON.toJSONString(jsonText,  
                    SerializerFeature.WriteDateUseDateFormat);  
        }  
       
        /** 
         * 自定义时间格式 
         *  
         * @param jsonText 
         * @return 
         */  
        public static String toJSON(String dateFormat, String jsonText) {  
            mapping.put(Date.classnew SimpleDateFormatSerializer(dateFormat));  
            return JSON.toJSONString(jsonText, mapping);  
        }  
    }

    自定义反序列化示例:

    先自定义一个日期解析类:

    Java代码  收藏代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    public class MyDateFormatDeserializer extends DateFormatDeserializer {  
       
            private String myFormat;  
       
            public MyDateFormatDeserializer(String myFormat) {  
                super();  
                this.myFormat = myFormat;  
            }  
       
            @Override  
            protected <Date> Date cast(DefaultJSONParser parser, Type clazz, Object fieldName, Object val) {  
                if (myFormat == null) {  
                    return null;  
                }  
                if (val instanceof String) {  
                    String strVal = (String) val;  
                    if (strVal.length() == 0) {  
                        return null;  
                    }  
       
                    try {  
                        return (Date) new SimpleDateFormat(myFormat).parse((String)val);  
                    catch (ParseException e) {  
                        throw new JSONException("parse error");  
                    }  
                }  
                throw new JSONException("parse error");  
            }  
        }

     

  • 相关阅读:
    PAIRING WORKFLOW MANAGER 1.0 WITH SHAREPOINT 2013
    Education resources from Microsoft
    upgrade to sql server 2012
    ULSViewer sharepoint 2013 log viewer
    Top 10 Most Valuable Microsoft SharePoint 2010 Books
    讨论 Setsockopt选项
    使用 Alchemy 技术编译 C 语言程序为 Flex 可调用的 SWC
    Nagle's algorithm
    Nagle算法 TCP_NODELAY和TCP_CORK
    Design issues Sending small data segments over TCP with Winsock
  • 原文地址:https://www.cnblogs.com/exmyth/p/5189753.html
Copyright © 2011-2022 走看看