Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 反序列化包含继承对象类型数组的复杂JSON_C#_Json_Serialization - Fatal编程技术网

C# 反序列化包含继承对象类型数组的复杂JSON

C# 反序列化包含继承对象类型数组的复杂JSON,c#,json,serialization,C#,Json,Serialization,我创建了一个名为RESTObjectBase的类。该类由任何数量的其他类继承,这些类包括诸如人员、地址、电话号码等信息 我创建一个包含一个或多个此类对象的列表,并通过REST调用将其传递回前端 返回的JSON如下所示: { "Items":[ { "__type":"AnyObjectInheritedFromBaseClass", "ObjectType":3, "First_Name":"", "Las

我创建了一个名为
RESTObjectBase
的类。该类由任何数量的其他类继承,这些类包括诸如人员、地址、电话号码等信息

我创建一个包含一个或多个此类对象的
列表
,并通过REST调用将其传递回前端

返回的JSON如下所示:

{
   "Items":[
      {
         "__type":"AnyObjectInheritedFromBaseClass",
         "ObjectType":3,
         "First_Name":"",
         "Last_Name":"",
      }
   ],
   "Status":0
}
我试图在另一端反序列化这个。我有多个错误,包括“类型不能为null”,但这不是我真正的问题

有没有办法将如此复杂的对象反序列化为原始类/列表。我之所以苦苦挣扎,是因为它是一个最终继承了
RESTObjectBase
的对象数组,而且反序列化看起来还不够聪明

前端反序列化可以是任何设备或平台,因此我不能简单地使用JSON.NET之类的东西,因为它在任何地方都不受支持

我甚至很乐意解构JSON并分别序列化数组中的每个项,但我也不知道如何做到这一点。我可以使用该类型来解决如何反序列化它


任何帮助都将不胜感激。

这一切都是关于使用正确的序列化程序。我使用DataContractJsonSerializer进行了序列化,因此对反序列化也进行了同样的操作,并且工作正常

        RESTResponse rr2 = null;

        using (MemoryStream ms = new MemoryStream())
        {
            var writer = new StreamWriter(ms);
            writer.Write(textBox1.Text);
            writer.Flush();
            ms.Position = 0;

            DataContractJsonSerializer s = new DataContractJsonSerializer(typeof(RESTResponse));

            rr2 = (RESTResponse)s.ReadObject(ms);
        }
虽然我计划在移动设备上的许多不同平台上执行此操作,但我计划使用Xamarin,因此我应该能够执行相同的代码


这也意味着我可以使用JSON.NET。

您使用的是什么序列化程序?存在“\uuu type”参数表明它是
DataContractJsonSerializer
JavaScriptSerializer
。请查看VS中的“将JSON粘贴为类”功能。谢谢。这两个都让我回到了正确的道路上。还有2小时的睡眠:)。