如何从fql查询中提取字符串数据

时间:2013-03-08 00:37:13

标签: facebook-c#-sdk

真的是一个初学者问题。

以下代码根据我的理解查询Facebook好友。如何将所有朋友的名字和姓氏作为字符串获取,以便将其放在列表框中?

谢谢

private async void FqlAsyncExample()
{
        try
        {
            // query to get all the friends
            var query = string.Format("SELECT uid,pic_square,first_name FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1={0})", "me()");

            dynamic parameters = new ExpandoObject();
            parameters.q = query;
            dynamic result = await _fb.GetTaskAsync("fql", parameters);

            TotalFriends.Text = string.Format("You have {0} friend(s).", result.data.Count);
        }
        catch (FacebookApiException ex)
        {
            // handle error message
        }

    }

1 个答案:

答案 0 :(得分:0)

result.data的数据类型是IEnumerable。你最好的办法是做这样的事情。

dynamic friends = result.data;
foreach(var friend in friends)
{
    Console.WriteLine(friend.first_name);
}

这会将您的每个朋友的名字输出到控制台。因为你正在使用一个动态对象,无论你放在后面。需要是JSON键字段的确切名称。在您的情况下,选项将是

friend.uid
friend.pic_square
friend.first_name

这些都可以很容易地转换为字符串的类型(这实际上就是它们),但是也可以将其转换为long。

为了获得所有朋友的姓氏,你必须修改你的FQL:

SELECT uid,pic_square,first_name,last_name FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1=me())

由于您在原始查询中遗漏了“last_name”。