我剛剛發現,使用FQL方法由facebook返回的JSON數據具有與由facebook圖形API返回的JSON不同的格式。如何處理這個JSON數據?
例如:
FQL <> GRAPH
uid <> id
work_history <> work
education_history <> education
另外的字段名稱和對象的在陣列中的結構是不同的。
我使用FQL和GRAPH爲我的網站。因爲我不想製作2個Facebook用戶類。我決定只使用圖形api。
我正在嘗試獲取al用戶的朋友列表,其中包括工作和教育數據。
我不知道,如果你需要我的代碼,但如果你需要它來解決我的問題,那就是: (JSON字符串我想處理更加下文)
public static List<FbUser> getFriends(string id, string token)
{
//get all id's of friends
string jsonUrl = graphUrl + "/" + id + "/friends?access_token=" + token;
var json = new WebClient().DownloadString(jsonUrl);
FbUserList useridlist = JsonConvert.DeserializeObject<FbUserList>(json);
//get all data of friends
jsonUrl = graphUrl + "?ids=" + useridlist.getIds() + "&access_token=" + token;
json = new WebClient().DownloadString(jsonUrl);
List<FbUser> userlist = JsonConvert.DeserializeObject<List<FbUser>>(json.Insert(0,"[") + "]");
return userlist;
}
useridlist的.cs
public class FbUserList
{
private List<FbObject> _data;
public List<FbObject> data
{
get
{
return _data;
}
set
{
_data = value;
}
}
public string getIds()
{
string result = "";
foreach (FbObject o in _data) {
result += o.id + ",";
}
string test = result.Substring(0, result.Length - 1);
return test;
}
}
在此之後,在JSON變量,我得到了以下數據:
[{"505757632":{"id":"505757632","name":"Cecilia demo","first_name":"Cecilia", ....},
{"507493765":{"id":"507493765","name":"Bjorn demo","first_name":"Bjorn", .....}
, ... ]
我不知道如何從這些數據中獲得用戶對象列表。 一個用戶對象具有如下字段:id,name,first_name,...所以我需要擺脫纏繞在我的用戶對象周圍的附加對象。
任何幫助非常感謝!
反序列化爲字典,然後從字典中獲取值? – 2011-04-15 12:57:31