Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.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# 使用DataContractJsonSerializer使用不同类型的数组反序列化json_C#_Json_Serialization_Datacontractjsonserializer - Fatal编程技术网

C# 使用DataContractJsonSerializer使用不同类型的数组反序列化json

C# 使用DataContractJsonSerializer使用不同类型的数组反序列化json,c#,json,serialization,datacontractjsonserializer,C#,Json,Serialization,Datacontractjsonserializer,有没有反序列化这种json的方法 { "photos": [ 19, { "pid": 288777129, "aid": -6 }, { "pid": 286441792, "aid": -6 }, { "pid": 114893258, "aid": 34465839 } ] } 在不修改源代码的情况下使用C#DataContractJsonSeriali

有没有反序列化这种json的方法

{
  "photos": [
    19,
    {
      "pid": 288777129,
      "aid": -6
    },
    {
      "pid": 286441792,
      "aid": -6
    },
    {
      "pid": 114893258,
      "aid": 34465839
    }
  ]
}

在不修改源代码的情况下使用C#
DataContractJsonSerializer
。我指的是第一个元素19。

我通常使用
JavascriptSerializer
类:

JavaScriptSerializer js = new JavaScriptSerializer();
Object obj = js.DeserializeObject(str);
Response.Write(obj["photos"][0]); // 19

JSON数组不限于一种类型(因此JSON是有效的),事实上,在javascript中,这些对象在某种意义上都会被视为不同的类型,因为它们只是一般的对象文本。为了更准确,我编辑了问题标题。你找到答案了吗?或者你最终没有使用DataContract@FYaqoob,我放弃了使用DataContractJsonSerializer,转而使用Json.NET定制转换器解决方案。不幸的是,我在反序列化时需要DataContract支持。