• <i id='LZ9Qx'><tr id='LZ9Qx'><dt id='LZ9Qx'><q id='LZ9Qx'><span id='LZ9Qx'><b id='LZ9Qx'><form id='LZ9Qx'><ins id='LZ9Qx'></ins><ul id='LZ9Qx'></ul><sub id='LZ9Qx'></sub></form><legend id='LZ9Qx'></legend><bdo id='LZ9Qx'><pre id='LZ9Qx'><center id='LZ9Qx'></center></pre></bdo></b><th id='LZ9Qx'></th></span></q></dt></tr></i><div id='LZ9Qx'><tfoot id='LZ9Qx'></tfoot><dl id='LZ9Qx'><fieldset id='LZ9Qx'></fieldset></dl></div>
    <tfoot id='LZ9Qx'></tfoot>

    <small id='LZ9Qx'></small><noframes id='LZ9Qx'>

    • <bdo id='LZ9Qx'></bdo><ul id='LZ9Qx'></ul>

  • <legend id='LZ9Qx'><style id='LZ9Qx'><dir id='LZ9Qx'><q id='LZ9Qx'></q></dir></style></legend>

        如何告诉 Json.NET 忽略第 3 方对象中的属性?

        时间:2023-08-24

        <small id='HgcPb'></small><noframes id='HgcPb'>

          <legend id='HgcPb'><style id='HgcPb'><dir id='HgcPb'><q id='HgcPb'></q></dir></style></legend>
          • <i id='HgcPb'><tr id='HgcPb'><dt id='HgcPb'><q id='HgcPb'><span id='HgcPb'><b id='HgcPb'><form id='HgcPb'><ins id='HgcPb'></ins><ul id='HgcPb'></ul><sub id='HgcPb'></sub></form><legend id='HgcPb'></legend><bdo id='HgcPb'><pre id='HgcPb'><center id='HgcPb'></center></pre></bdo></b><th id='HgcPb'></th></span></q></dt></tr></i><div id='HgcPb'><tfoot id='HgcPb'></tfoot><dl id='HgcPb'><fieldset id='HgcPb'></fieldset></dl></div>

              <tbody id='HgcPb'></tbody>
            <tfoot id='HgcPb'></tfoot>

                  <bdo id='HgcPb'></bdo><ul id='HgcPb'></ul>
                  本文介绍了如何告诉 Json.NET 忽略第 3 方对象中的属性?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  Json.NET 文档说您使用 JsonIgnore 来不序列化类中的某些属性:

                  The Json.NET documentation says you use JsonIgnore to not serialize certain properties in your classes:

                  public class Account
                  {
                      public string FullName { get; set; }
                      public string EmailAddress { get; set; }
                  
                      [JsonIgnore]
                      public string PasswordHash { get; set; }
                  }
                  

                  如何让 Json.NET 在使用 JsonConvert.SerializeObject 序列化第 3 方对象时忽略特定属性?

                  How can I make Json.NET ignore specific properties when serializing a 3rd-party object with JsonConvert.SerializeObject?

                  推荐答案

                  制作自定义合约解析器:

                  Make a custom contract resolver:

                  public class ShouldSerializeContractResolver : DefaultContractResolver
                  {
                      public static ShouldSerializeContractResolver Instance { get; } = new ShouldSerializeContractResolver();
                  
                      protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization)
                      {
                          JsonProperty property = base.CreateProperty(member, memberSerialization);        
                          if (typeof(Account).IsAssignableFrom(member.DeclaringType) && member.Name == nameof(Account.PasswordHash))
                          {
                              property.Ignored = true;
                          }
                          return property;
                      }
                  }
                  

                  我如何测试它:

                          var account = new Account
                          {
                              PasswordHash = "XXAABB"
                          };
                          var settings = new JsonSerializerSettings
                          {
                              ContractResolver = ShouldSerializeContractResolver.Instance
                          };
                          var json = JsonConvert.SerializeObject(account, settings);
                          Console.WriteLine(json);
                  

                  这篇关于如何告诉 Json.NET 忽略第 3 方对象中的属性?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:如何使用 JSON.NET 序列化静态或常量成员变量? 下一篇:如何仅将缩进序列化应用于某些属性?

                  相关文章

                  最新文章

                    <small id='oIRAG'></small><noframes id='oIRAG'>

                  1. <tfoot id='oIRAG'></tfoot>
                      • <bdo id='oIRAG'></bdo><ul id='oIRAG'></ul>
                    1. <legend id='oIRAG'><style id='oIRAG'><dir id='oIRAG'><q id='oIRAG'></q></dir></style></legend>
                    2. <i id='oIRAG'><tr id='oIRAG'><dt id='oIRAG'><q id='oIRAG'><span id='oIRAG'><b id='oIRAG'><form id='oIRAG'><ins id='oIRAG'></ins><ul id='oIRAG'></ul><sub id='oIRAG'></sub></form><legend id='oIRAG'></legend><bdo id='oIRAG'><pre id='oIRAG'><center id='oIRAG'></center></pre></bdo></b><th id='oIRAG'></th></span></q></dt></tr></i><div id='oIRAG'><tfoot id='oIRAG'></tfoot><dl id='oIRAG'><fieldset id='oIRAG'></fieldset></dl></div>