C# Facebook SDK 动态数据转换

标签 c# facebook-c#-sdk

我从 Facebook SDK 获得了一个对象

var responsePages = (JsonObject)FBClient_.Get(new { ids = 
[123123123, 123123123, 12312213, etc]});

此查询返回数据(见图)

Results

现在如何将其转换为对象列表? 我尝试过以下操作,但不起作用

var pe = (from dynamic page
                in (IList<object>)(object)responsePages.Values
                             orderby page.name ascending
                             select new FBPage
                             {
                                 Id = Convert.ToString(page.id),
                             }
                ).ToList();

所以失败了,希望得到任何帮助,因为这种动态的东西让我非常生气。

谢谢

最佳答案

如果您使用动态,则无需进行强制转换。

var fb = new FacebookClient();

dynamic result = fb.Get(new { ids = new[] { "...", "..." } });

var pages = new List<FBPage>();
foreach (var page in result.Values)
{
    var fbPage = new FBPage {
        Id = page.id,
        Name = page.name
    };

    pages.Add(fbPage);
}

或者如果你想使用 linq。 (动态不支持扩展方法,因此您需要进行一些转换, JsonObject => IDictionary<string, dyanmic>JsonArray => IList<dynamic> )

var pages = ((IDictionary<string, dynamic>)result)
    .Select(kpv => kpv.Value)
    .Select(p => new FBPage { id = p.id, name = p.name })
    .ToList();

或者你的强类型类。

var fbPages = fb.Get<IDictionary<string, FBPage>>(new { 
    ids = new[] { "...", "..." } 
}).Values;

public class FBPage
{
    public string id { get; set; }
    public string name { get; set; }
}

关于C# Facebook SDK 动态数据转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13659553/

相关文章:

facebook-c#-sdk - 使用 facebook c# sdk v6.0.10 执行 FQL 查询

c# - 与 ListView SelectedItem 与 TextCell 命令绑定(bind)

c# - unity 3d 有没有办法拖放 UI 按钮?

c# - 为什么 Azure 表存储不支持 DateTimeOffset?

.net - 如何在 Facebook .NET SDK 中调用版本化图形 API 服务?

C# 相当于 file_get_contents (PHP)

facebook - 我们如何要求用户接受我们 Facebook SSO 中的所有权限?

c# - 尝试验证和阅读新闻源/时间线(C# 桌面应用程序)

c# - 我们可以在静态类中有一个私有(private)构造函数吗?

c# - 可能是.NET JIT调用参数生存期错误?