在程序 c# 开始时加载 JSON 数据
Loading JSON data at start of program c#
我正在尝试将已序列化的数据加载到 JSON 文件中。我希望我的程序能够工作,以便在重新打开控制台应用程序后将保存的数据买回程序内存。
我的 类 定义如下:
public class Student{
public string StudentName { get; set; }
public Dictionary<string, int> GradesRecord = new Dictionary<string, int>();
public Guid StudentId { get; set;
}
public class Subject{
public string SubjectName { get; set; }
public Guid SubjectId { get; set; }
public int MaxMarkAvail;
}
public class ClassOfStudents{
public List<Student> Students = new List<Student>();
public List<Subject> Subjects = new List<Subject>();
public void AddSubject(Subject subjectName){
Subjects.Add(subjectName);
}
public void AddStudent(Student studentName){
Students.Add(studentName);
}
}
我有一个保存学生成绩的方法。
private static void ConvertStudentGradesToJson()
{
var studentsgrades = ClassOfStudents.Students.Select(x => new { x.StudentName, x.StudentId, x.GradesRecord });
JsonSerializer serializer = new JsonSerializer();
serializer.NullValueHandling = NullValueHandling.Ignore;
using (StreamWriter sw = new StreamWriter(@"StudentsGrades.JSON"))
using (JsonWriter writer = new JsonTextWriter(sw))
{
writer.Formatting = Formatting.Indented;
serializer.Serialize(writer, studentsgrades);
}
}
现在,当我关闭程序时,会创建 StudentsGrades.JSON
文件。
我想知道如何在程序关闭后重新打开后将此信息加载回程序内存。
注意:我是 JSON 的新手。请原谅我对 JSON 的工作原理缺乏了解。
谢谢
重新打开应用程序时调用此方法:
public void LoadJson(string filePath="@StudentsGrades.JSON")
{
using (StreamReader r = new StreamReader(filePath))
{
string json = r.ReadToEnd();
List<Students> Students = JsonConvert.DeserializeObject<List<Students>>(json);
}
}
注意:您应该使用 Newtonsoft.Json
我正在尝试将已序列化的数据加载到 JSON 文件中。我希望我的程序能够工作,以便在重新打开控制台应用程序后将保存的数据买回程序内存。
我的 类 定义如下:
public class Student{
public string StudentName { get; set; }
public Dictionary<string, int> GradesRecord = new Dictionary<string, int>();
public Guid StudentId { get; set;
}
public class Subject{
public string SubjectName { get; set; }
public Guid SubjectId { get; set; }
public int MaxMarkAvail;
}
public class ClassOfStudents{
public List<Student> Students = new List<Student>();
public List<Subject> Subjects = new List<Subject>();
public void AddSubject(Subject subjectName){
Subjects.Add(subjectName);
}
public void AddStudent(Student studentName){
Students.Add(studentName);
}
}
我有一个保存学生成绩的方法。
private static void ConvertStudentGradesToJson()
{
var studentsgrades = ClassOfStudents.Students.Select(x => new { x.StudentName, x.StudentId, x.GradesRecord });
JsonSerializer serializer = new JsonSerializer();
serializer.NullValueHandling = NullValueHandling.Ignore;
using (StreamWriter sw = new StreamWriter(@"StudentsGrades.JSON"))
using (JsonWriter writer = new JsonTextWriter(sw))
{
writer.Formatting = Formatting.Indented;
serializer.Serialize(writer, studentsgrades);
}
}
现在,当我关闭程序时,会创建 StudentsGrades.JSON
文件。
我想知道如何在程序关闭后重新打开后将此信息加载回程序内存。
注意:我是 JSON 的新手。请原谅我对 JSON 的工作原理缺乏了解。
谢谢
重新打开应用程序时调用此方法:
public void LoadJson(string filePath="@StudentsGrades.JSON")
{
using (StreamReader r = new StreamReader(filePath))
{
string json = r.ReadToEnd();
List<Students> Students = JsonConvert.DeserializeObject<List<Students>>(json);
}
}
注意:您应该使用 Newtonsoft.Json