C# 使用DataContractJsonSerializer使用不同类型的数组反序列化json
有没有反序列化这种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
{
"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支持。