在WP8中解析不同的Json对象

时间:2015-02-11 06:29:45

标签: json windows-phone-8

请帮助我解析这个Json示例,因为我无法解析它,因为它的复杂性以及它内部的不同对象。我可以在相同对象的列表中解析Json&相同的结构,但不像下面那样。

   [
      {

       "notificationBrowserHead":
       {

           "notificationId": 4,
           "notificationType": "NEW_PRODUCT",
           "creationTime": 1421933381000,
           "notificationNormalUserId": 4,
           "notificationViewed": false
       },
       "brandIdAndNameHolder":
       {
           "brandId": 1,
           "name": "B1"
       },
       "brandLogo": null,
       "productIdAndNameHolder":
       {
           "productId": 1,
           "name": "JK product1"
       }
   },
   {
       "notificationBrowserHead":
       {
           "notificationId": 2,
           "notificationType": "USER_INT_COMMENT",
           "creationTime": 1421924403000,
           "notificationNormalUserId": 2,
           "notificationViewed": false
       },
       "uploadId": 22,
       "uploadThumbnail": "/mediaUrl/location/thumbNail",
       "uploadDescription": "upload 1 location desc",
       "notificationCreator":
       {
           "normalUserId": 90,
           "displayName": "amit"
       },
       "uploadRemoved": false
   },
   {
       "notificationBrowserHead":
       {
           "notificationId": 1,
           "notificationType": "NEW_LOCATION_VOTE",
           "creationTime": 1421924403000,
           "notificationNormalUserId": 1,
           "notificationViewed": false
       },
       "locationIdAndNameHolder":
       {
           "locationId": 11,
           "name": "Current King JK"
       },
       "locationLogo": null
   }
]     

任何帮助都会得到真正的赞赏。

2 个答案:

答案 0 :(得分:1)

我认为当NotificationType变化时,您会收到不同的json属性集。

解决方案1:

在类中定义所有成员(您为不同类型的通知收到的所有属性的集合)并将其用于DeSerialization,以便特定通知类型的不需要的属性为null。

解决方案2:

手动分析。 Newtonsoft json documentation here

答案 1 :(得分:0)

制作课程"通知(或其他)"并放入你从json2csharp.com网站获得的所有内容,然后使用此框架http://www.newtonsoft.com/json在从服务器下载数据时反序列化数据,你应该能够通过Object.Notificationbrowserhead [x] .notificationType或类似的方式获取notificationType