Sudha
Sudha

Reputation: 2118

read data from a json formatted object

I have a .net application in which I am getting a response data in json format. I have used the below code to get the json response.

string details= new System.Net.WebClient().DownloadString(url);
var temp = JsonConvert.DeserializeObject(details.ToString());

I have got a json format object in temp and json format string in details

I am getting an output as below from temp

{"data":
[
{"category":"Community","name":"New Page","access_token":"accesstoken_data1","perms":["ADMINISTER","EDIT_PROFILE","CREATE_CONTENT","MODERATE_CONTENT","CREATE_ADS","BASIC_ADMIN"],"id":"1234"},
{"category":"Community","name":"Page ABC","access_token":"accesstoken_data2","perms":["ADMINISTER","EDIT_PROFILE","CREATE_CONTENT","MODERATE_CONTENT","CREATE_ADS","BASIC_ADMIN"],"id":"56789"}
]
,"paging":{"next":"https:\/\/graph.facebook.com\/1100234567\/accounts?access_token=pageAccesstoken&limit=5000&offset=5000&__after_id=77786543"}
}

I need to get the category,name,access_token as key and corresponding data as values in some dictionary. How can I achieve it?

Upvotes: 1

Views: 311

Answers (1)

Thangamani  Palanisamy
Thangamani Palanisamy

Reputation: 5300

Hope this will do the required stuffs

private Dictionary<string, object> deserializeToDictionary(string jo)
    {
        var values = JsonConvert.DeserializeObject<Dictionary<string, object>>(jo);
        var values2 = new Dictionary<string, object>();
        foreach (KeyValuePair<string, object> d in values)
        {
            if (d.Value.GetType().FullName.Contains("Newtonsoft.Json.Linq.JObject"))
            {
                values2.Add(d.Key, deserializeToDictionary(d.Value.ToString()));
            }
            else
            {
                values2.Add(d.Key, d.Value);

            }
        }
        return values2;
    }

This was taken from the following link

How can I deserialize JSON to a simple Dictionary<string,string> in ASP.NET?

string json = @"{""key1"":""value1"",""key2"":""value2""}";

Dictionary<string, string> values = JsonConvert.DeserializeObject<Dictionary<string, string>

More examples: Serializing Collections with Json.NET

Upvotes: 2

Related Questions