2015-02-11 30 views
0

请帮我解析这个Json示例,因为我不能解析它,因为它的复杂性以及它内部的不同对象。我能够解析Json时,相同的对象列表&相同的结构,但不像下面的一个。在WP8中解析不同的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 
    } 
]  

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

+0

将您的JSon粘贴到网站http://json2csharp.com/这会给你一个对象模型来处理。 – 2015-02-11 06:56:09

+0

是的,它确实给了我所有的类,但因为我需要在运行时调用JSON的第二部分,并使用“notificationType”指定的条件。我该怎么做??? – SA24 2015-02-11 07:05:29

+0

这些问题是最糟糕的 – kindasimple 2015-02-11 08:10:13

回答

1

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

解决方案1:

定义你的所有成员都在一个班,并用它来反序列化,所以(你收到不同类型的通知所有属性的集合),对于您的特定通知类型不需要的特性将为空。

解决方案2:

手动解析器。 Newtonsoft json documentation here

0

做类“通知(或某事)”,并把你从json2csharp.com网站得到的一切,然后使用这个框架http://www.newtonsoft.com/json反序列化数据,当你从服务器下载它,你应该能够通过对象获取notificationType .Notificationbrowserhead [x] .notificationType或类似的。