循环遍历c#中的字典对象

时间:2015-05-11 12:45:18

标签: c# json.net

我有一个string对象的字典userData。 我进行了一次http调用以获取数据。

internal static Dictionary<string, object> userData = null;

**userData = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, object>>(httpData);**

userData的结构是这样的

{
    "id": "12345",
    "class": [
        "my-user",
        "college-student"
    ],
    "list": [
        {
            "a": "CSE",
            "b": "DataBase"
        },
        {
            "a": "IT",
            "b": "ComputerNetwork"
        }
    ]
}

现在我必须遍历此userData以检索a和b的值。 可以请某人帮我在c#

中这样做

1 个答案:

答案 0 :(得分:1)

使用您目前拥有的代码的最简单方法:

var arr = (JArray)userData["list"];

foreach (JObject item in arr) 
{
    Console.WriteLine("a: {0}", item["a"]);
    Console.WriteLine("b: {0}", item["b"]);
    Console.WriteLine();
}

密钥userData的{​​{1}}中的值为"list"JArray,每个都包含JObject"a"属性。

然而,另一种(更好的)方法是创建一些代表JSON结构的类:

"b"

然后反序列化为public class ListItem { public string A { get; set; } public string B { get; set; } } public class MyClass { public string Id { get; set; } public List<string> @Class { get; set; } public List<ListItem> List { get; set; } } 的实例:

MyClass