如何在c#中循环对象数组

时间:2015-05-11 08:57:45

标签: c#

我有以下json。我想迭代它并获得a和b的值,以便我可以在其他地方设置它。谁能告诉我如何在c#中做到这一点?杰森是 -

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

1 个答案:

答案 0 :(得分:3)

从nuget安装json.net并使用此代码获取a和b

        dynamic res = JObject.Parse(json);
        List<dynamic> ls =JsonConvert.DeserializeObject<List<dynamic>>( res.list.ToString());
        ls.ForEach(item=> Console.WriteLine(item.a+" "+item.b));

因为我们喜欢一个衬垫,所以只需执行以下操作

List<dynamic> res = JsonConvert.DeserializeObject<List<dynamic>>(((dynamic)(JObject.Parse(json))).list.ToString());

如果你想为json生成类,只需使用这个网站http://json2csharp.com/

你会得到的课程是

public class List
{
    public string a { get; set; }
    public string b { get; set; }
}

public class RootObject
{
    public string _id { get; set; }
    public List<string> r { get; set; }
    public List<List> list { get; set; }
}

并使用以下命令反序列化:

var res = JsonConvert.DeserializeObject<RootObject>(json);