2013-02-14 60 views
1

如何解析json feed在c#中?如何在c#中解析json feed?

我試過到目前爲止以下:

  string fileurl = "http://itunes.apple.com/rss/customerreviews/id=123456789/json"; 

     var jsonStr = new WebClient().DownloadString(fileurl); 

     JavaScriptSerializer serializer = new JavaScriptSerializer(); 
     var jsonObject = serializer.Deserialize<IDictionary<string, object>>(jsonStr); 

一旦我使用上面的代碼獲得Dictionary<string, object> dic1 = new Dictionary<string, object>();

我重複得到如下所示的value object[]

 foreach (KeyValuePair<String, object> d in dic1) 
     { 
      var k = d.Key; 
      var v = d.Value; 
     } 

現在valueSystem.Object[]類型,因此任何人都可以幫我解析這個對象如下面的圖片嗎?我是新來的,所以任何幫助都會很棒!

enter image description here

+0

爲您的foreach中的每條語句再試一次嗎? – turnt 2013-02-14 18:43:17

+0

你可以給我舉例,因爲我試過並得到一個錯誤:「foreach語句無法對'object'類型的變量進行操作,因爲'object'不包含'GetEnumerator'的公共定義 – updev 2013-02-14 18:48:18

+2

C#中已經有JSON解析的實現存在。 Json.NET(http://json.codeplex.com/)就是其中之一。它也給你很好的Linq支持,所以你可以很容易地查詢數據,等等。 – 2013-02-14 19:16:45

回答

0

你反序列化到錯誤的類型。

在你的代碼,

JavaScriptSerializer serializer = new JavaScriptSerializer(); 
var jsonObject = serializer.Deserialize<IDictionary<string, object>>(jsonStr); 

你指定它需要反序列化鍵入IDictionary<string, object>。嘗試將該類型與object以外的內容匹配。

+0

我指定IDictionary <字符串,對象>因爲對象是未知的,我不能將它轉換爲對象,因爲json提要有一些非法字符,如'im:version' – updev 2013-02-14 19:27:01

0

也許ServiceStack的JSON解析器會有所幫助 - 它支持dynamic JSON