美文网首页Asp.net开发.NET asp.net
.NET自定义Json序列化时间格式

.NET自定义Json序列化时间格式

作者: 天天向上卡索 | 来源:发表于2017-07-24 17:22 被阅读80次

.NET自定义Json序列化时间格式

Intro

和 JAVA 项目组对接,他们的接口返回的数据是一个json字符串,里面的时间有的是Unix时间戳,有的是string类型,有的还是空,默认序列化规则没办法反序列化为时间,
所以自定义了一个 Json 时间转换器,支持可空时间类型、string、long(Unix时间戳毫秒)

Show me the code

    public class CustomDateTimeConverter : JavaScriptDateTimeConverter
    {
        /// <summary>
        /// 重写JavaScriptDateTimeConverter ReadJson 方法
        /// </summary>
        /// <param name="reader">The <see cref="T:Newtonsoft.Json.JsonReader"/> to read from.</param>
        /// <param name="objectType">Type of the object.</param>
        /// <param name="existingValue">The existing property value of the JSON that is being converted.</param>
        /// <param name="serializer">The calling serializer.</param>
        /// <returns></returns>
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            if (reader.Value == null) //兼容可空时间类型
            {
                return null;
            }
            else
            {
                if (reader.TokenType == JsonToken.Date)
                {
                    return reader.Value;
                }
                else if (reader.TokenType == JsonToken.String)
                {
                    DateTime dt = DateTime.Parse(reader.Value.ToString());
                    return dt;
                }
                else
                {
                    return new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).AddMilliseconds(Convert.ToInt64(reader.Value)).ToLocalTime();
                }
            }
        }
    }

How To Use

var model = JsonConvert.DeserializeObject<ResponseModel>(res,new CustomDateTimeConverter());

End

如果你有更好的实现方法,欢迎提出

欢迎随时联系我 weihanli@outlook.com

相关文章

  • .NET自定义Json序列化时间格式

    .NET自定义Json序列化时间格式 Intro 和 JAVA 项目组对接,他们的接口返回的数据是一个json字符...

  • unity--Json序列化字典

    Unity自己的json序列化是不支持字典格式的。json .net库,功能很强大,还支持序列化字典推荐给大家。点...

  • springboot bug实例6

    在使用springboot+redis+自定义CacheManager来用json格式来序列化javabean的时...

  • python json 序列号/反序列化

    json格式与字符串格式相互转换: 序列化 json.loads() 反序列化 # json.dumps(obj,...

  • DRF之序列化

    序列化 把Python中对象转换为json格式字符串 反序列化 把json格式转为为Python对象。 序列化两大...

  • Json & Gson

    1 Json 定义:轻量级的数据交换格式2 json反序列化成bean,bean序列化成json,都是通Json解...

  • FastJSON 使用小结

    1. JSON格式字符串转为别的对象 反序列化:反序列化就是把JSON格式的字符串转化为Java Bean对...

  • spring webflux LocalDateTime 时间

    此处为webflux 返回json时格式化时间字段 此处为reactiveRedis 序列化和反序列化时配置 ma...

  • Json

    将json对象转换为json格式的字符串【序列化】 var xiaoming = {...}JSON.string...

  • WCF服务返回JSON 不是标准JSON格式问题

    WCF返回的序列化JSON格式 键值对形式 {"d":"result{}"}形式,需要取到标准JSON格式数据 r...

网友评论

    本文标题:.NET自定义Json序列化时间格式

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