使用DataContractJsonSerializer反序列化具有不同类型数组的json

3
有没有办法反序列化这样的 JSON?
{
  "photos": [
    19,
    {
      "pid": 288777129,
      "aid": -6
    },
    {
      "pid": 286441792,
      "aid": -6
    },
    {
      "pid": 114893258,
      "aid": 34465839
    }
  ]
}

使用C#中的DataContractJsonSerializer完成翻译,无需修改源代码。我指的是第一个元素19。


JSON数组不限于一种类型(因此json有效),实际上在Javascript中,这些对象在某种程度上都被认为是不同的类型,因为它们只是通用对象字面量。 - Esailija
我已经编辑了问题标题,使其更加正确。 - mumu2
你找到答案了吗?还是最终没有使用DataContract? - F Yaqoob
1
@FYaqoob,我放弃使用DataContractJsonSerializer并转而使用Json.NET的自定义转换器解决方案。 - mumu2
1个回答

1

我通常使用JavascriptSerializer类:

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

很不幸,在反序列化时我需要DataContract支持。 - mumu2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接