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);
}
}
}