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;
    });
    
    
  • 相关阅读:
    xsd的解释说明
    SDUT 2498-AOE网上的关键路径(spfa+字典序路径)
    java实现各种数据统计图(柱形图,饼图,折线图)
    软件測试计划模板
    范式图形辨析
    Android做法说明(3)---Fragment使用app袋或v4包解析
    登录同步多个副本如何实现的拷贝数发生变化分布式
    ZOJ1463:Brackets Sequence(间隙DP)
    jquery php 百度搜索框智能提示效果
    Hibernate在关于一对多,多对一双向关联映射
  • 原文地址:https://www.cnblogs.com/thomerson/p/13561548.html
Copyright © 2011-2022 走看看