<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      C#在Json序列化中動(dòng)態(tài)忽略某些屬性或字段

      C#在Json序列化中動(dòng)態(tài)忽略某些屬性或字段

      先準(zhǔn)備好Newtonsoft.Json的程序包。

       

      固定忽略:

      在代碼上面加上[JsonIgnore]特性。

       

      動(dòng)態(tài)忽略:

      使用鮮為人知的ShouldSerialize方法。

      ShouldSerialize的用法:

      在需要序列化的類當(dāng)中增加一個(gè)bool類型的方法,

      方法的名字為ShouldSerialize和你需要序列化的字段的名字相加,

      且沒(méi)有參數(shù)。

      如果方法返回true,則該字段會(huì)被序列化。

      如果方法返回false,則該字段不會(huì)被序列化。

       

      如果字段擁有對(duì)應(yīng)的ShouldSerialize方法,則會(huì)被序列化,

      如果字段打上了[JsonIgnore]特性,則以特性優(yōu)先,不會(huì)再觸發(fā)ShouldSerialize方法。

       

      以下示例代碼一共有9個(gè)字段或?qū)傩詀,b,c,d,e,f,g,h,s:

      然后給出調(diào)用方式:

      執(zhí)行結(jié)果:

      {"a":1,"c":"3","e":true,"h":null}

      解釋:

      我們一共寫了a-g的7個(gè)ShouldSerialize方法,名字的前綴都為ShouldSerialize,后綴分別為a-g的字段名字。

      字段b和s上打了固定的忽略特性,不會(huì)被序列化。

      字段a,b,c,e上的ShouldSerialize的返回結(jié)果為true,會(huì)被序列化,但是b字段打了固定忽略,所以b不會(huì)被序列化。

      字段h,沒(méi)有打上固定忽略特性,也沒(méi)有對(duì)應(yīng)的ShouldSerialize方法,默認(rèn)會(huì)被序列化。

                  TestClase test = new TestClase();
                  string s = JsonConvert.SerializeObject(test);
       public class TestClase 
          {
              public int a = 1;
              [JsonIgnore]
              public int b = 2;
              public string c = "3";
              public string d = "4";
              public bool e = true;
              public bool f = false;
              public string g { get; set; }
              public string h { get; set; }
      
              [JsonIgnore]//固定忽略字段s,這個(gè)字段不會(huì)被序列化
              public string s = "a,b,c,e";
      
              //方法的名字為ShouldSerialize + a
              public bool ShouldSerializea()
              {
              
                  List<string> strs = s.Split(',').ToList<string>();
                  if (strs.FindAll((x)=>x == "a").Count > 0)
                  {
                      return true;
                  }
                  else
                  {
                      return false;
                  }
              }
              //方法的名字為ShouldSerialize + b
              public bool ShouldSerializeb()
              {
               
                  List<string> strs = s.Split(',').ToList<string>();
                  if (strs.FindAll((x) => x == "b").Count > 0)
                  {
                      return true;
                  }
                  else
                  {
                      return false;
                  }
              }
              //方法的名字為ShouldSerialize + c
              public bool ShouldSerializec()
              {
           
                  List<string> strs = s.Split(',').ToList<string>();
                  if (strs.FindAll((x) => x == "c").Count > 0)
                  {
                      return true;
                  }
                  else
                  {
                      return false;
                  }
              }
              public bool ShouldSerialized()
              {
                 
                  List<string> strs = s.Split(',').ToList<string>();
                  if (strs.FindAll((x) => x == "d").Count > 0)
                  {
                      return true;
                  }
                  else
                  {
                      return false;
                  }
              }
              public bool ShouldSerializee()
              {
            
                  List<string> strs = s.Split(',').ToList<string>();
                  if (strs.FindAll((x) => x == "e").Count > 0)
                  {
                      return true;
                  }
                  else
                  {
                      return false;
                  }
              }
              public bool ShouldSerializef()
              {
                  
                  List<string> strs = s.Split(',').ToList<string>();
                  if (strs.FindAll((x) => x == "f").Count > 0)
                  {
                      return true;
                  }
                  else
                  {
                      return false;
                  }
              }
      
              public bool ShouldSerializeg()
              {
      
                  List<string> strs = s.Split(',').ToList<string>();
                  if (strs.FindAll((x) => x == "g").Count > 0)
                  {
                      return true;
                  }
                  else
                  {
                      return false;
                  }
              }
      
          }

       

      posted @ 2023-03-17 16:33  威少小二orz  閱讀(5782)  評(píng)論(3)    收藏  舉報(bào)
      主站蜘蛛池模板: 欧美gv在线| 91精品国产综合久蜜臀| 无码日韩精品一区二区三区免费| 免费的特黄特色大片| 国产美女高潮流白浆视频| 北岛玲中文字幕人妻系列| 日产国产一区二区不卡| 7m精品福利视频导航| 国产成人av三级在线观看| 我要看亚洲黄色太黄一级黄| 亚洲蜜桃av一区二区三区| 无码国内精品久久人妻蜜桃| 日本无产久久99精品久久| 亚洲精品一区二区三区在| 999福利激情视频| 国产福利酱国产一区二区 | 国产剧情91精品蜜臀一区| 色窝窝免费一区二区三区| 亚洲国产精品日韩在线| 国内精品久久久久影院薰衣草| 国产边摸边吃奶边叫做激情视频| 和林格尔县| 国产精品一区二区三区性色| 久久中文字幕国产精品| 人人玩人人添人人澡超碰| 国产AV大陆精品一区二区三区| 久久热这里这里只有精品| 极品少妇被后入内射视| 一本精品99久久精品77| 亚洲日韩中文字幕在线播放 | 国产亚洲精品综合99久久| 欧美人与zoxxxx另类| 国产精品国产片在线观看| 中文字幕v亚洲日本在线电影| 熟女一区二区中文字幕| 欧美成人aaa片一区国产精品| 久久精品国产99久久丝袜| 日韩精品区一区二区三vr| 波多野结衣久久一区二区| 国产精品日韩精品日韩| 久久99国产精品尤物|