C#

리스트, 스택, 큐 직렬화/역직렬화

s0002 2023. 1. 13. 00:23

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
using System.IO;


namespace Study11
{
    class App
    {
        //생성자 
        public App()
        {
            //리스트 만들고 아이템 넣기
            List<Item> items0 = new List<Item>();
            items0.Add(new Item() { Name = "장검", Damage = 10 });
            items0.Add(new Item() { Name = "단검", Damage = 5 });

            //스택 만들고 아이템 넣기
            Stack<Item> items1 = new Stack<Item>();
            items1.Push(new Item() { Name = "장검", Damage = 10 });
            items1.Push(new Item() { Name = "단검", Damage = 5 });

            //큐 만들고 아이템 넣기
            Queue<Item> items2 = new Queue<Item>();
            items2.Enqueue(new Item() { Name = "장검", Damage = 10 });
            items2.Enqueue(new Item() { Name = "단검", Damage = 5 });


            //직렬화
            string json0 = JsonConvert.SerializeObject(items0);
            Console.WriteLine(json0);
            File.WriteAllText("my_items0.json", json0);

            string json1 = JsonConvert.SerializeObject(items1);
            Console.WriteLine(json1);
            File.WriteAllText("my_items1.json", json1);

            string json2 = JsonConvert.SerializeObject(items2);
            Console.WriteLine(json2);
            File.WriteAllText("my_items2.json", json2);


            //역직렬화
            string json00 = File.ReadAllText("./my_items0.json");
            Item[] items00 = JsonConvert.DeserializeObject<Item[]>(json00);
            Console.WriteLine(items00);
            foreach (Item item in items00)
                    Console.WriteLine("name:{0}, damage:{1}", item.Name, item.Damage);


            string json01 = File.ReadAllText("./my_items1.json");
            Stack<Item> items01 = JsonConvert.DeserializeObject<Stack<Item>>(json01);
            Console.WriteLine(items01);
            foreach (Item item in items01)
                    Console.WriteLine("name:{0}, damage:{1}", item.Name, item.Damage);

            string json02 = File.ReadAllText("./my_items2.json");
            Queue<Item> items02 = JsonConvert.DeserializeObject<Queue<Item>>(json02);
            Console.WriteLine(items02);
            foreach (Item item in items02)
                Console.WriteLine("name:{0}, damage:{1}", item.Name, item.Damage);
            
        }
    }
}

'C#' 카테고리의 다른 글

이분탐색/이진탐색/Binary Search  (0) 2023.01.29
미션, 아이템 엑셀->json->데이터  (0) 2023.01.13
객체 한 개 직렬화/역직렬화  (0) 2023.01.12
linq 연습  (0) 2023.01.12
json 이용해서 객체 직렬화/역직렬화 하기  (0) 2023.01.12