我正在为Windows Phone 7构建一个Foursquare应用程序。它与HttpWebRequests很好地配合,我正在完美地接收JSON对象。我正在使用DataContractJsonSerializer(类型)方法。但是当把这个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对象数组,有两个memers:“public String type”和“public Object item”。我不知道数组中会有哪些,以及有多少通知(因此'item'成员必须是什么类型)。正如您在JSON中看到的,第一个通知有一个int类型的项,但第二个通知的item是string类型。但是我需要知道反序列化...或者它只是保持为null ..所以我不能把它转换为正确的类型..
有谁知道如何妥善解决这个问题?
答案 0 :(得分:1)
嗯,不是100%肯定这会回答你的问题,但是你不能用javascript将对象转换为字符串然后以那种方式操作吗?
类似的东西:
var value =无论[number] .toString;
这会给你一个可以使用的字符串。然后,您可以尝试将其解析回int。
var valueInt = parseInt(value);
然后使用IF语句查看valueInt是否存在,以确定第一个对象具有何种值。