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

Facebook JSON string handling in C# MVC

我试图在 MVC 应用程序中从我的 Facebook 粉丝页面获取图片和点赞。为此,我正在使用 Facebook C# SDK。以下是 returns 格式为 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)}");

上面的代码 returns 和 JSON 我把它存储在一个名为 data 的动态对象中。现在我想迭代这个 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 returns 是否包含多个项目的数组,它不会显示在您的评论中。尽管拥有多个项目没有意义,因为照片应该 (IMO) 只有 "one total count"。如果它保证它 returns 只有一个项目那么你可以简单地做一个:

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

但话又说回来,采用 Linq 方法是更安全的方法。