Newtonsoft.Json自定义序列化

 

 

 1     public class ChinaDateTimeConverter : DateTimeConverterBase
 2     {
 3         private static IsoDateTimeConverter dtConverter = new IsoDateTimeConverter { DateTimeFormat = "yyyy-MM-dd HH:mm" };
 4 
 5         public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
 6         {
 7             return dtConverter.ReadJson(reader, objectType, existingValue, serializer);
 8         }
 9 
10         public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
11         {
12             dtConverter.WriteJson(writer, value, serializer);
13         }
14     }
15     public class WorkTaskNoticeReadsModel
16     {
17 
18         public string UserName { get; set; }
19 
20         public string FullName { get; set; }
21 
22         public string DeptName { get; set; }
23 
24         [JsonConverter(typeof(ChinaDateTimeConverter))]
25         public DateTime ReadTime { get; set; }
26     }
27  
28     /// <summary>  
29     /// javascript时间戳毫秒  Newtonsoft.Json序列化扩展特性
30     /// </summary>  
31     public class TimestampConverter : JsonConverter
32     {
33         public override bool CanConvert(Type objectType)
34         {
35             return objectType == typeof(DateTime);
36         }
37 
38         public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
39         {
40             return ConvertIntDateTime(long.Parse(reader.Value.ToString()));
41         }
42 
43         public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
44         {
45             writer.WriteValue(ConvertDateTimeInt((DateTime)value));
46         }
47 
48         public DateTime ConvertIntDateTime(long aSeconds)
49         {
50             return new DateTime(1970, 1, 1).AddMilliseconds(aSeconds);
51         }
52 
53         public long ConvertDateTimeInt(DateTime aDT)
54         {
55             return (long)(aDT - new DateTime(1970, 1, 1)).TotalMilliseconds;
56         }
57     }
58 
59    public class Person
60     {
61         [JsonProperty("name"), JsonConverter(typeof(EmptyStringConverter))]
62         public string Name { get; set; }
63 
64         [JsonProperty("date1"), JsonConverter(typeof(TimestampConverter))]
65         public DateTime Date1 { get; set; }
66 
67         [JsonProperty("date2"), JsonConverter(typeof(TimestampConverter))]
68         public DateTime Date2 { get; set; }
69 
70         [JsonProperty("money"), JsonConverter(typeof(MoneyConverter))]
71         public decimal Money { get; set; }
72     }

 

转载于:https://www.cnblogs.com/zengsm/p/10273346.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值