<bdo id='uuVg4'></bdo><ul id='uuVg4'></ul>

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

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

    <legend id='uuVg4'><style id='uuVg4'><dir id='uuVg4'><q id='uuVg4'></q></dir></style></legend>

      <tfoot id='uuVg4'></tfoot>
      1. 如何将 JSON 反序列化为 IEnumerable&lt;BaseType&am

        时间:2023-08-23

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

              • <tfoot id='b4o3E'></tfoot>

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

                    <tbody id='b4o3E'></tbody>
                  <legend id='b4o3E'><style id='b4o3E'><dir id='b4o3E'><q id='b4o3E'></q></dir></style></legend>
                  本文介绍了如何将 JSON 反序列化为 IEnumerable&lt;BaseType&gt;使用 Newtonsoft JSON.NET的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  鉴于此 JSON:

                  [
                    {
                      "$id": "1",
                      "$type": "MyAssembly.ClassA, MyAssembly",
                      "Email": "me@here.com",
                    },
                    {
                      "$id": "2",
                      "$type": "MyAssembly.ClassB, MyAssembly",
                      "Email": "me@here.com",
                    }
                  ]
                  

                  还有这些类:

                  public abstract class BaseClass
                  {
                      public string Email;
                  }
                  public class ClassA : BaseClass
                  {
                  }
                  public class ClassB : BaseClass
                  {
                  }
                  

                  如何将 JSON 反序列化为:

                  How can I deserialize the JSON into:

                  IEnumerable<BaseClass> deserialized;
                  

                  我不能使用 JsonConvert.Deserialize<IEnumerable<BaseClass>>() 因为它抱怨 BaseClass 是抽象的.

                  I can't use JsonConvert.Deserialize<IEnumerable<BaseClass>>() because it complains that BaseClass is abstract.

                  推荐答案

                  你需要:

                  JsonSerializerSettings settings = new JsonSerializerSettings
                  {
                      TypeNameHandling = TypeNameHandling.All
                  };
                  
                  string strJson = JsonConvert.SerializeObject(instance, settings);
                  

                  所以 JSON 看起来像这样:

                  So the JSON looks like this:

                  {
                    "$type": "System.Collections.Generic.List`1[[MyAssembly.BaseClass, MyAssembly]], mscorlib",
                    "$values": [
                      {
                        "$id": "1",
                        "$type": "MyAssembly.ClassA, MyAssembly",
                        "Email": "me@here.com",
                      },
                      {
                        "$id": "2",
                        "$type": "MyAssembly.ClassB, MyAssembly",
                        "Email": "me@here.com",
                      }
                    ]
                  }
                  

                  然后就可以反序列化了:

                  Then you can deserialize it:

                  BaseClass obj = JsonConvert.DeserializeObject<BaseClass>(strJson, settings);
                  

                  文档:TypeNameHandling 设置

                  这篇关于如何将 JSON 反序列化为 IEnumerable&lt;BaseType&gt;使用 Newtonsoft JSON.NET的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:在 JSON.NET 中反序列化的转换接口 下一篇:将 JSON 反序列化为 C# 类

                  相关文章

                  最新文章

                    <bdo id='FvYZP'></bdo><ul id='FvYZP'></ul>
                1. <small id='FvYZP'></small><noframes id='FvYZP'>

                  <tfoot id='FvYZP'></tfoot>
                  <legend id='FvYZP'><style id='FvYZP'><dir id='FvYZP'><q id='FvYZP'></q></dir></style></legend>

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