Newtonsoft解析Json文件

添加引用

using Newtonsoft.Json;

Exam类

  public class Exam
    {
     
        //考生学号
        public string Number {
      get; set; }

        //考试名称
        public string Name {
      get; set; }

        //考试使用语言
        public string LanguageCode {
      get; set; }

        //考试科目
        public string Subject {
      get; set; }

        //考试座位号
        public string Seat {
      get; set; }

        //考试场次Id
        public string RoundID {
      get; set; }

        //考试场次名称
        public string RoundName {
      get; set; }

        //考场房间Id
        public string RoomID {
      get; set; }

        //考试房间名称
        public string RoomName {
      get; set; }
        ....(不一一列举)
   }

调用和实现代码

  public JsonDictionaryInfo ReadJson(string jsonPath)
        {
     
        //找出文件夹下所有.json文件
            var files = from file in Directory.EnumerateFiles(jsonPath, "*.json", SearchOption.AllDirectories) 
                        select new
                        {
     
                            File = file
                        };
         //创建字典存入excel对象和json文件名
            Dictionary<string, Exam> jsonInfo = new Dictionary<string, Exam>();
            //遍历json文件
            foreach (var item in files)
            {
     
            	//写入文件流
                FileStream fs = new FileStream(item.File, FileMode.Open);
                //读取json文件
                using (StreamReader sr = new StreamReader(fs))
                {
     
                	//获取没有扩展名的json文件名
                    string fileName = Path.GetFileNameWithoutExtension(fs.Name);
                    //将文件流读取到字符串
                    string jsonStr = sr.ReadToEnd();
                    //将数据反序列化为Exam对象
                    Exam examModel = JsonConvert.DeserializeObject<Exam>(jsonStr);
                    //将文件名和对象加入字典
                    jsonInfo.Add(fileName, examModel);
                }
                fs.Close();
            }
            return new JsonDictionaryInfo(jsonInfo);
        }
       ```
       由上代码可知将json内容存入了字典中,如果要访问json中的属性,可直接遍历字典,
       字典的value是json反序列化之后的对象value.Exam.属性值即可访问。

你可能感兴趣的:(C#,json)