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

标签 c# json serialization datacontractjsonserializer

有没有办法反序列化这样的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

关于c# - 使用 DataContractJsonSerializer 反序列化具有不同类型数组的 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13515213/

相关文章:

c# - 如何使用 &nbsp 元素将字符串解析为 XML?

ios - 当响应包含在数组中时,RestKit POSTed 托管对象变得重复

python - 使用 object_hook 将 JSON 字典解析为对象的奇怪行为

c# - 是否可以使用 Protocol Buffer 序列化 System.Object 对象列表

java - 有没有办法通过python反序列化java对象

c# - 构造函数和 With{} 哪个先出现?

c# - 使用绑定(bind)属性在 Metro 风格应用程序中打开应用栏

javascript - 将数组转换为 json - smarty

perl - 如何实现不涉及加载到内存的对象持久化?

c# - 如何将函数从 C++ .dll 导入到 C Sharp