zoukankan      html  css  js  c++  java
  • .Net 【工作应用】 Newtonsoft.Json用法

    引用

    using Newtonsoft.Json
    

    一般用法

    JsonConvert.SerializeObject({})
    JsonConvert.DeserializeObject<T>(jsonString)
    

    控制序列化字段

    序列化的模式:OptOut 和 OptIn

    忽略某些字段

    [JsonObject(MemberSerialization.OptOut)] //默认,可以不标注
    public class User
    {
        public string Name { get; set; }
    
        public string Sex { get; set; }
    
        [JsonIgnore]
        public bool IDCard { get; set; }
    
        public DateTime Birthday { get; set; }
    }
    

    只需要某些字段

    [JsonObject(MemberSerialization.OptIn)]
    public class User
    {
        [JsonProperty]
        public string Name { get; set; }
    
        public string Sex { get; set; }
    
        public bool IDCard { get; set; }
    
        public DateTime Birthday { get; set; }
    }
    

    null值处理

    通过JsonSerializerSettings配置

    JsonSerializerSettings jsetting=new JsonSerializerSettings();
    jsetting.NullValueHandling = NullValueHandling.Ignore;
    JsonConvert.SerializeObject(obj, Formatting.Indented, jsetting);
    

    通过JsonProperty设置

     [JsonProperty(NullValueHandling=NullValueHandling.Ignore)]
     public DateTime? Birthday { get; set; }
    
    

    日期格式化

    JsonSerializerSettings jsetting=new JsonSerializerSettings();
    jsetting.DateFormatHandling = Newtonsoft.Json.DateFormatHandling.MicrosoftDateFormat;
    jsetting.DateFormatString = "yyyy-MM-dd HH:mm:ss";
    
    

    自定义字段名称

    [JsonProperty(PropertyName = "CName")]
    public string Name { get; set; }
    

    枚举类型序列化

    显示enmu的string

    enmu UserType
    {
        normal = 0,
        admin = 1
    }
    
    [JsonConverter(typeof(StringEnumConverter))]
    public UserType Type { get; set; }
    

    全局序列化设置

    var setting = new JsonSerializerSettings();
    JsonConvert.DefaultSettings = new Func<JsonSerializerSettings>(() =>
    {
      //日期类型默认格式化处理
      setting.DateFormatHandling = Newtonsoft.Json.DateFormatHandling.MicrosoftDateFormat;
       setting.DateFormatString = "yyyy-MM-dd HH:mm:ss";
    
      //空值处理
       setting.NullValueHandling = NullValueHandling.Ignore;
    
       return setting;
    });
    
    
  • 相关阅读:
    Cocos2d-iphone 为sprite添加双击的事件响应
    经典书单 —— 语言/算法/机器学习/深度学习/AI/CV/PGM
    经典网络站点、论坛、博客
    经典网络站点、论坛、博客
    Python 格式化输出 —— 小数转化为百分数
    Python 格式化输出 —— 小数转化为百分数
    移位运算与除法、取模运算
    移位运算与除法、取模运算
    火箭、飞行器、探测器的发射
    火箭、飞行器、探测器的发射
  • 原文地址:https://www.cnblogs.com/thomerson/p/13561548.html
Copyright © 2011-2022 走看看