使用newtonsoft

时间:2017-09-12 08:24:36

标签: c# json serialization

我有以下JSON

{
  "students":
   [{
     "firstName":"first",
     "middleName":"middle",
     "lastName":"last",
     "studentId":"123-123-123",
     "joiningBatch":{"semesterName":"Fall2017"},
     "semesters":[],
     "courses":[],
     "department":1,
     "degree":1
    }]
}

我创建了一个学生类,并设置了所有属性,名称和id都有一个固定格式,我使用正则表达式强制执行。连接批处理包含另一个自定义类Semester,其中只有一个变量。部门和学位都是枚举, 我将数据写入json文件,但是当我尝试反序列化它并放入List时,我得到错误,我的正则表达式检查失败。我可以看到数据在类中,但它无法反序列化,我完全迷失了,因为我是C#的初学者。搜索了很多,但没有一个解决方案适合我。

public string jsonData = File.ReadAllText("data.json");    
public List<Student> studentList = JsonConvert.DeserializeObject<List<Student>>(jsonData)
              ?? new List<Student>();

这是我为从文件中获取数据并反序列化而编写的代码。任何线索都欢迎我在这里做错了。

P.S。部门和学位,正在正确读取int值,所以我认为正在读取数据,但字符串值导致问题,我可能是错的。我的目的是从文件中读取json数据,对其进行反序列化,生成一个Student对象列表,因为我序列化了一个Student对象列表并将它们写入文件。

更新:我将我的json更改为以下格式

[{"_firstName":"q","_middleName":"q","_lastName":"q","_studentId":"123-123-123","_joiningBatch":{"_semesterName":"Fall2017"},"_semesters":[],"_courses":[],"_department":1,"_degree":1}]

再次它不起作用,我尝试了问题中提到的解决方案,该解决方案被标记为此问题的副本,但也失败了。

0 个答案:

没有答案