Facebook Graph API fetch friends using json and C #

I work in C # with the Graph API and can get Facebook user profile information such as ID, name and email address and then deserialize JSON to be able to assign label values.

However, my problem is when I go to grab a list of friends or a list of something for that matter, how do I go about deserializing this JSON information in C # so that I can store the data? I believe that I am looking for a way to deserialize the results into a dictionary object so that I can then scroll through the data.

+4
source share
2 answers

Well .. I ended up using JSON.Net, and it did a great job. Thank you for pointing me in this direction. With the help of another article I found ( http://www.mattcashatt.com ) and JSON.net files, I was able to get everything working. Here are some of the code I used.

#region JSON.Net User Profile //Profile URL url = "https://graph.facebook.com/me?fields=id,name,email&access_token=" + oAuth.Token; JObject myProfile = JObject.Parse(requestFBData(url)); string myID = myProfile["id"].ToString().Replace("\"", ""); string myName = myProfile["name"].ToString().Replace("\"", ""); string email = myProfile["email"].ToString().Replace("\"", ""); lblID.Text = myID; lblFullName.Text = myName; lblEmail.Text = email; imgUser.ImageUrl = "https://graph.facebook.com/me/picture?type=large&access_token=" + oAuth.Token; #endregion #region JSON.Net Friends //Friends URL url = "https://graph.facebook.com/me/friends?access_token=" + oAuth.Token; JObject myFriends = JObject.Parse(requestFBData(url)); string id=""; string name = ""; //Loop through the returned friends foreach (var i in myFriends["data"].Children()) { id = i["id"].ToString().Replace("\"", ""); name = i["name"].ToString().Replace("\"", ""); lblFriends.Text = lblFriends.Text + "<br/> " + "id: " + id + " name: " + name + "<img src=" + "https://graph.facebook.com/" + id + "/picture>"; } #endregion } } } public string requestFBData(string action) { HttpWebRequest req = (HttpWebRequest)WebRequest.Create(action); HttpWebResponse resp = (HttpWebResponse)req.GetResponse(); StreamReader sr = new StreamReader(resp.GetResponseStream()); string results = sr.ReadToEnd(); sr.Close(); return results; } 
+10
source

You need a JSON parser for C #.

It may help: parsing JSon using JSon.net

There are many other C # JSON parsers:

More here

+1
source

All Articles