c# 강의/수업내용(문법 관련)

객체(클래스) JSON 타입으로 입출력 / 폴더생성

쪼혀 2020. 4. 29. 00:41

1. 라이브러리로 생각되긴하는데, C#에서의 솔루션용 Nuget 패키지 의미를 잘모르겠다.

 

using Newtonsoft.Json;

 


2. File 클래스를 사용하려면 추가

using System.IO;

> 읽기 활용

1. 바로 해당 인스턴스 Dictionary로 전환

 try
            {
                path = "./data/hero_data.json";
                if (File.Exists(path))
                {
                    json = File.ReadAllText(path);
                    this.dicHeroData = JsonConvert
                        .DeserializeObject<HeroData[]>(json)
                        .ToDictionary(x => x.id, x => x);
                }
                //Newtonsoft.Json 축약가능 using Newtonsoft.Json; 하면

 

2. 배열타입 인스턴스에서 다시 Dictionary로 전환

  var json = File.ReadAllText("./achievement_data.json");
            var arrAchievementDatas = JsonConvert.DeserializeObject<AchievementData[]>(json);
            foreach (var data in arrAchievementDatas) {
                this.dicAchievementDatas.Add(data.id, data);
            }

 


> 쓰기

        public void Save()
        {
            try
            {
                var json = JsonConvert.SerializeObject(this);
                File.WriteAllText("./info/info.json", json);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                throw;
            }
        }

 


> 폴더 생성

            DirectoryInfo folder = new DirectoryInfo("./info");
            if (!folder.Exists)
            {
                folder.Create();
            }