2016-10-31 5 views
1

私はMVCを新しくしています。ご迷惑をおかけして申し訳ありません。私は私のFacebookのページからフィードを抽出し、私のウェブサイト上のブログスタイルでそれを表示したい。FacebookのページフィードのJSONをASP.NET MVCのモデルにマップするにはどうすればよいですか?

:ここ

public class FacebookPost 
    { 
     public string picture { get; set; } 
     public string message { get; set; } 
     public string full_picture { get; set; } 
     public string link { get; set; } 
     public string created_time { get; set; } 
     public string id { get; set; } 
    } 

    public class Paging 
    { 
     public string previous { get; set; } 
     public string next { get; set; } 
    } 

    public class ListOfPosts 
    { 
     public List<FacebookPost> Posts { get; set; } 
     public Paging paging { get; set; } 
    } 
} 

コントローラです:[この] [1]チュートリアルを使用して

、私は

{ 
    "data": [ 
     { 
     "picture": "https://external.xx.fbcdn.net/safe_image.php?d=AQBeTNJKl6E6Cn-z&w=130&h=130&url=https\u00253A\u00252F\u00252Fi.ytimg.com\u00252Fvi\u00252FBzMLA8YIgG0\u00252Fmaxresdefault.jpg&cfs=1", 
     "message": "Deilig Nyhet fra Microsoft :)", 
     "full_picture": "https://external.xx.fbcdn.net/safe_image.php?d=AQCltay6XGCdIOCg&w=720&h=720&url=https\u00253A\u00252F\u00252Fi.ytimg.com\u00252Fvi\u00252FBzMLA8YIgG0\u00252Fmaxresdefault.jpg&cfs=1", 
     "link": "https://youtu.be/BzMLA8YIgG0", 
     "created_time": "2016-10-27T05:49:35+0000", 
     "id": "560323937478408_668291570014977" 
     }, 
     { 
     "message": "KaBooM! http://fontbomb.ilex.ca/", 
     "link": "http://fontbomb.ilex.ca/", 
     "created_time": "2016-10-24T20:58:25+0000", 
     "id": "560323937478408_666850766825724" 
     }, 
     { 
     "picture": "https://external.xx.fbcdn.net/safe_image.php?d=AQBEIo-gZdGvA-v-&w=130&h=130&url=http\u00253A\u00252F\u00252Fubercookie.robinlinus.com\u00252Fubercookie-logo-large.png&cfs=1", 
     "message": "Hvor er dere logget p\u00e5? https://robinlinus.github.io/socialmedia-leak/", 
     "full_picture": "https://external.xx.fbcdn.net/safe_image.php?d=AQCqNxZZHQsDq0c7&url=http\u00253A\u00252F\u00252Fubercookie.robinlinus.com\u00252Fubercookie-logo-large.png", 
     "link": "https://robinlinus.github.io/socialmedia-leak/", 
     "created_time": "2016-10-14T18:46:26+0000", 
     "id": "560323937478408_660491507461650" 
     } 
    ], 
    "paging": { 
     "previous": "https://graph.facebook.com/v2.8/560323937478408/posts?fields=picture,message,full_picture,link,created_time&limit=3&since=1477547375&access_token=170251210100617|9cbeQyqZzCnUvgj_54jQgcDkhOQ&__paging_token=enc_AdAeaZAnnXTT3FMqZAqxrHyadsW4xpOuX9okNhxuIuJ8xFCUHM9sEFky1uDa8WOCIDS74TXXkQVa3qMmNvDHMsGescfvTr69uGtjznZARVTtFkiPwZDZD&__previous=1", 
     "next": "https://graph.facebook.com/v2.8/560323937478408/posts?fields=picture,message,full_picture,link,created_time&limit=3&access_token=170251210100617|9cbeQyqZzCnUvgj_54jQgcDkhOQ&until=1476470786&__paging_token=enc_AdDwbf48PqgVZAO0K7b1ew9DCLX97UbPRZBhZAhAwb3dYZC3XWKLWvntEZBAxh2X1ZB4pdQc635i3ZAPtdQ7wxQ6YUIwEpb7vlwZAzSqDTBKd8ZCAtnsacgZDZD" 
    } 
} 

は、ここに私のモデルのFacebookページのフィードから、次のJSONを得ることができました

public ActionResult News() 
     { 
      var NumberofFeeds = 3; 
      string PageId = "pageID"; 
      string AccessToken = "accessToken"; 
      //dynamic posts; 
      FacebookPost posts; 

      string FeedRequestUrl = string.Concat("https://graph.facebook.com/" + PageId + "/posts?fields=picture,message,full_picture,link,created_time&access_token=" + AccessToken + "&limit=" + NumberofFeeds); 
      HttpWebRequest feedRequest = (HttpWebRequest)WebRequest.Create(FeedRequestUrl); 
      feedRequest.Method = "GET"; 
      feedRequest.Accept = "application/json"; 
      feedRequest.ContentType = "application/json; charset=utf-8"; 
      WebResponse feedResponse = (HttpWebResponse)feedRequest.GetResponse(); 
      using (feedResponse) 
      { 
       using (var reader = new StreamReader(feedResponse.GetResponseStream())) 
       { 
        posts = JsonConvert.DeserializeObject<FacebookPost>(reader.ReadToEnd()); 
       } 
      } 
      return View(posts); 
     } 

私はJsonをモデルのプロパティにマップしようとしていますが、私は常にnullを返します。 [NULL] [2]。

は、次のソリューションの提案をしようとしました:https://stackoverflow.com/a/9988494/2955845
Deserializing JSON to .NET object using Newtonsoft (or LINQ to JSON maybe?)
Deserializing JSON data to C# using JSON.NET
Deserializing JSON to .NET object using Newtonsoft (or LINQ to JSON maybe?)

何もどのように私は、JSONのうちのモデルを作成し、以下のレイアウトにマップすることができ...動いていないようにみえ:http://htmlstream.com/preview/unify-v1.9.6/Blog-Magazine/blog_page_layouts2.html

答えて

1

この行を以下から変更してください:

posts = JsonConvert.DeserializeObject<FacebookPost>(reader.ReadToEnd()); 

posts = JsonConvert.DeserializeObject<ListOfPosts>(reader.ReadToEnd()); 
+0

は、残念ながらチームメイトしかし努力に感謝を助けていません。 – Visvald

関連する問題