从json格式的对象读取数据

时间:2014-02-05 09:53:47

标签: json asp.net-mvc-4 object

我有一个.net应用程序,我在其中获取json格式的响应数据。我使用下面的代码来获取json响应。

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

我在 temp 中有一个json格式对象,在详细信息中有一个json格式的字符串

我从 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"}
}

我需要将类别,名称,access_token作为键和相应的数据作为某些字典中的值。 我怎样才能实现它?

1 个答案:

答案 0 :(得分:2)

希望这会做所需的东西

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;
    }

这取自以下链接

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>

更多示例:Serializing Collections with Json.NET