我正在用C#编写一个应用程序供我的老师用于学生出勤,并且因为我刚刚开始使用C#(来自Java),所以我需要有人来指导我正确的方向。
我有一个Json文件,其中包含2个数组,一个用于上午学生,一个用于下午学生,我需要将它们都解析为单独的列表。在Json文件中,它们都有单独的名称(“早晨”和“下午”)。如何使用Json.NET做到这一点?
我已经有2个列表,morningStudents
和afternoonStudents
每个包含学生。 Student类包含3个变量,名称,ID和状态,与每个学生在每个学生数组中获得的字段相对应。
在下面,您可以找到我的Json文件的外观的表示形式。
{
"morning":
[
{
"name": "Morning Student 1",
"id": "123456",
"status": "0"
}
],
"afternoon":
[
{
"name": "Afternoon Student 1",
"id": "123456",
"status": "0"
}
]
}
答案 0 :(得分:1)
我建议您有两个.NET类,一个代表学生,一个代表时间表。 StudentSchedule
类将具有morning
的{{1}}属性列表和Student
的{{1}}属性列表。然后,您可以使用JSON.NET直接对其进行反序列化。
evening
我用这段代码来摆弄小提琴,供您查看:https://dotnetfiddle.net/f7InH7。
您可以在this question中反序列化为动态对象。由于您是C#的新手,所以我暂时不介绍动态信息,而将重点放在首先掌握基本原理上。
有关JSON.NET的更多文档,请参见https://www.newtonsoft.com/json/help/html/SerializingJSON.htm。
答案 1 :(得分:-1)
public class Morning
{
public string name { get; set; }
public string id { get; set; }
public string status { get; set; }
}
public class Afternoon
{
public string name { get; set; }
public string id { get; set; }
public string status { get; set; }
}
public class RootObject
{
public List<Morning> morning { get; set; }
public List<Afternoon> afternoon { get; set; }
}
使用json2csharp.com生成。
在那之后,只需反序列化就可以了。