zoukankan      html  css  js  c++  java
  • json.net序列化日期格式的类型及特性

    1. 如果一个实体类里所有的时间即DateTime类型的字段,都处理成统一格式的话,使用统一格式
       IsoDateTimeConverter timeFormat = new IsoDateTimeConverter();
       timeFormat.DateTimeFormat = "yyyy-MM-dd HH:mm:ss";
       JsonConvert.SerializeObject(stu, Newtonsoft.Json.Formatting.Indented,timeFormat);

      如上代码,可以任意修改DateTimeFormat的日期显示格式,stu是需要格式化的对象。

    2. 如果对象中不同属性或者字段需要返回的格式不一致,比如有的需要年月日,有的是年月日时分秒,可以通过定义属性来解决
      public class student
          {
              public string Name { get; set; }
              public int Age { get; set; }
      //通过属性格式 [JsonConverter(
      typeof(DateFormat))] public DateTime BirthDay { get; set; }
      //通过属性处理格式 [JsonConverter(
      typeof(DateTimeFormat))] public DateTime CreateTime { get; set; } } public class DateFormat:IsoDateTimeConverter { public DateFormat() { base.DateTimeFormat = "yyyy-MM-dd"; } } public class DateTimeFormat:IsoDateTimeConverter { public DateTimeFormat() { base.DateTimeFormat = "yyyy-MM-dd HH:mm:ss"; } }

      演示:result = {"Name":"张三","Age":30,"BirthDay":"1986-07-16","CreateTime":"2016-01-16 23:13:34"}

      student stu = new student()
                  {
                      Name = "张三",
                      Age = 30,
                      BirthDay = new DateTime(1986, 7, 16),
                      CreateTime = DateTime.Now
                  };
                  string result = JsonConvert.SerializeObject(stu);
    3. 默认情况下,Json.Net序列化后结果中的字段名称和类中属性的名称一致.如果想自定义序列化后的字段名称,可以使用JsonProperty.例如
      public class Person
       {
             public int Id { get; set; }
      
             public string Name { get; set; }
       }

      默认序列化的结果为: {"Id":1,"Name":"杨过"},如果不想用默认的字段名称,可以使用如下方式:

      public class Person
      {
             [JsonProperty(PropertyName = "PersonId")]
             public int Id { get; set; }
      
             [JsonProperty(PropertyName = "PersonName")]
             public string Name { get; set; }
      }
  • 相关阅读:
    Corosync+Pacemaker+DRBD+Mysql高可用HA配置
    高可用集群corosync+pacemaker之crmsh使用
    nfs+DRBD+corosync+pacemaker 实现高可用(ha)的nfs集群
    nginx匹配
    2011年的最后一篇
    Python自然语言处理学习笔记(66):7.7 小结
    Python自然语言处理学习笔记(65):7.6 关系抽取
    Python自然语言处理学习笔记(64): 7.5 命名实体识别
    Python自然语言处理学习笔记(67):7.8 扩展阅读
    Python自然语言处理学习笔记(68):7.9 练习
  • 原文地址:https://www.cnblogs.com/LGDD/p/9356961.html
Copyright © 2011-2022 走看看