C#MVC中的Facebook JSON字符串处理

本文关键字:字符串 处理 JSON Facebook 中的 C#MVC | 更新日期: 2023-09-27 17:59:38

我试图在MVC应用程序中从我的Facebook粉丝页面上获得图片和点赞。为此,我使用了Facebook C#SDK。以下是以JSON格式返回结果的代码。

var client = new FacebookClient();                
client.AppId= "your_access_token";
client.AppSecret = "your_App_Secret";
client.AccessToken = "your_access_token";
dynamic data= client.Get("FanPageName?fields=id,name,photos{name,source,likes.summary(true).filter(stream)}");

上面的代码返回一个JSON,我将其存储在一个名为data的动态对象中。现在我想迭代这个JSON,这样我就可以将数据存储在数据库中,以便进一步工作。

我对如何迭代这个动态对象感到困惑。

C#MVC中的Facebook JSON字符串处理

获取有关照片的信息很简单:

foreach(dynamic photo in data.photos.data) {
   var url = photo.source.Value; // returns a string type
   var likes = ((IEnumerable)photo.likes.data).Cast<dynamic>()
        .Sum(x => x.total_count);
}

请注意Linq部分,因为我不确定likes.data是否返回一个包含多个项的数组,它不会显示在您的注释中。尽管有多个项目是没有意义的,因为一张照片应该只有"一个总数"。如果它保证只返回一个项目,那么你可以简单地做一个:

photo.likes.data[0].total_count.Value

但话说回来,采用林克的方法更安全。