2013-03-08 88 views
0

真的是一個初學者問題。如何從fql查詢中提取字符串數據

下面的代碼查詢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 
     } 

    } 

回答

0

數據類型FO 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 

這些都將很容易地鑄造爲字符串類型(這是他們實際上是),但UID也可以轉換爲長。

爲了讓所有的朋友的姓,你必須修改FQL到這樣的事情:

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

既然你在原始查詢冷落「姓氏」。

+0

謝謝我真的很感謝它的完美工作。 – 2013-03-08 14:50:27

+0

@AvishayRebibo請務必將其標記爲您的問題的答案,否則它仍然是一個未答覆的問題。 – 2013-03-08 17:42:06