Search code examples
c#facebookjsonfacebook-graph-apiidictionary

Using IDictionary with Json?


how to get the friends list (below) into and out from a iDictionary?

Example

{
  "data": [
    {
      "name": "John Smith", 
      "id": "111"
    }, 
    {
      "name": "Alice Smith", 
      "id": "222"
    }, 
    {
      "name": "Mary Smith", 
      "id": "333"
    }
  ], 
  "paging": {
    "next": "https://graph.facebook.com/me/friends?format=json&limit=5000&offset=5000&__after_id=100003243976011"
  }
}

Solution

    1. You have to add System.web and System.Web.Extensions assembly reference in your application
    2. Then try to use following code

    string jsonData = @"{ ""data"": [ { ""name"": ""John Smith"", ""id"": ""111"" },
    { ""name"": ""Alice Smith"", ""id"": ""222"" },
    { ""name"": ""Mary Smith"", ""id"": ""333"" } ],
    ""paging"": { ""next"": ""https://graph.facebook.com/me/friends?format=json&limit=5000&offset=5000&__after_id=100003243976011"" } }";

                JavaScriptSerializer seri = new JavaScriptSerializer();
                var items = seri.Deserialize<Dictionary<string, object>>(jsonData);
            // As data in JSON is array get it deserialize as ArrayList of Dictionary<string,object>
                var dataArray =  items["data"] as ArrayList;    
            // Each item in array list contain key value pair of name and id
                foreach (Dictionary<string,object> item in dataArray)
                    {
            //Read Item
                    foreach (KeyValuePair<string, object> detailItem in item)
                        {
                        Console.WriteLine(detailItem.Key + " - " + detailItem.Value);
                        }
                    Console.WriteLine("-------------------------------------------");
            // Read Item
                    }