【发布时间】:2011-11-10 08:50:28
【问题描述】:
我正在为 Windows Phone 7 构建一个 Foursquare 应用程序。它与 HttpWebRequests 配合得很好,并且我可以完美地接收 JSON 对象。我正在使用 DataContractJsonSerializer(type) 方法。但是当将此 JSON 反序列化为我想要的对象时,一切都很顺利,直到我有对象数组,我不知道期望哪种对象类型(也不知道对象的数量和顺序)。但是我在DataContractJsonSerializer(type)方法中反序列化的时候确实需要定义这个类型。
让我向您展示导致问题的 JSON 快照:
notifications":
[{
"type":"notificationTray",
"item":{
"unreadCount":0
}
},{
"type":"message",
"item":{
"message":"OK! We've got you @ Strandslag 4. You've been here 2 times."
}
}]
所以我将它反序列化为一个 Notification 对象数组,有两个 memer:“public String type”和一个“public Object item”。我不知道数组中会有哪些通知以及有多少通知(因此“项目”成员必须是什么类型)。正如您在 JSON 中看到的,第一个通知具有 int 类型的项目,但第二个通知的项目是字符串类型。但是我需要知道反序列化...否则它只是保持为空..所以我不能将它转换为正确的类型..
有谁知道如何很好地解决这个问题?
【问题讨论】:
-
查看此处了解有关 4th & Mayor(另一个 Foursquare 应用程序)的建设信息。对你有帮助:jeff.wilcox.name/2011/03/4am-leaderboard-notification
-
感谢 Ku6opr!这肯定是我的问题的一个选择。需要将我的应用程序从标准的反序列化方法重建到示例中使用的库。我要试试!再次感谢!
标签: c# json windows-phone-7