2019-10-16 Dictionary 컬렉션에 데이터추가하기 (json으로) (2) 쿠키런캐릭터

Console Programming/C# Console 2019. 10. 16. 16:43

character_data.json

[
  {
    "character_id": "100",
    "name": "용감한쿠키",
    "grade": "1",
    "resource_name": "cookie_brave_00"
  },
  {
    "character_id": "200",
    "name": "딸기맛쿠키",
    "grade": "2",
    "resource_name": "cookie_strawberry_01"
  },
  {
    "character_id": "201",
    "name": "버터크림 초코쿠키",
    "grade": "2",
    "resource_name": "cookie_buttercream_02"
  },
  {
    "character_id": "300",
    "name": "커피맛쿠키",
    "grade": "3",
    "resource_name": "cookie_coffee_03"
  }
]

Program.cs

namespace Syntax03
{
    class Program
    {
        static void Main(string[] args)
        {
            new App();
                        
        }
    }
}

App.cs

using System;
using System.Collections.Generic;
using Newtonsoft.Json;


namespace Syntax03
{
    public class App
    {
        public App()
        {
            Console.WriteLine("파일 읽기 연습");

            //딕셔너리 컬렉션 선언
            Dictionary<int, CharacterData> dicCharacterData = new Dictionary<int, CharacterData>();

            //character_data.json 파일 읽어오기
            string path = @"C:\Workspace\Console1016\Syntax03\bin\Debug\character_data.json";

            //경로 출력하기
            Console.WriteLine(path);

            //경로에 파일이 있는지 확인
            bool isExists = System.IO.File.Exists(path);
            Console.WriteLine($"isExists : {isExists}");
            if(isExists)
            {
                string json = System.IO.File.ReadAllText(path);

                Console.WriteLine(json);
                CharacterData[] arrCharacterDatas = JsonConvert.DeserializeObject<CharacterData[]>(json);

                for(int i = 0; i<arrCharacterDatas.Length; i++)
                {
                    var data = arrCharacterDatas[i];
                    Console.WriteLine($"{data.character_id} {data.name} {data.grade} {data.resource_name}");
                    dicCharacterData.Add(data.character_id, data);
                }
            }
            foreach(KeyValuePair<int,CharacterData> pair in dicCharacterData)
            {
                Console.WriteLine($"{pair.Key} {pair.Value.name}");
            }


            //CharacterData character1 = new CharacterData();
            //character1.character_id = 400;
            //character1.name = "쿠앤크쿠키";
            //character1.grade = 1;
            //character1.resource_name = "cookie_cnc_05";


            //dicCharacterData.Add(character1.character_id, character1);

            //CharacterData[] charactersSave = new CharacterData[dicCharacterData.Count];
            //int j = 0;
            //foreach(var pair in dicCharacterData)
            //{
            //    charactersSave[j] = pair.Value;

            //    j++;
            //}

            //string json2 = JsonConvert.SerializeObject(charactersSave);
            //System.IO.File.WriteAllText(path, json2);

            //System.IO.File.ReadAllText();
            Console.Read();
        }
    }
}

CharacterData.cs

namespace Syntax03
{
    class CharacterData
    {
        public int character_id;
        public string name;
        public int grade;
        public string resource_name;
        public CharacterData()
        {
            
        }
    }
}

 

: