yeeendy 2023. 1. 13. 13:00
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
using System.IO;

namespace Study13
{
    class App
    {
        //생성자
        public App()
        {
            string json = File.ReadAllText("./item_price.json");

            ItemPrice[] itemPrices = JsonConvert.DeserializeObject<ItemPrice[]>(json);

            foreach(ItemPrice price in itemPrices)
            {
                Console.WriteLine("{0} {1} {2}", price.id, price.name, price.price);
            }
        }
    }
}​
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
using System.IO;

namespace Study13
{
    class App
    {
        //생성자
        public App()
        {
            List<Item> items = new List<Item>();

            items.Add(new Item("딸기맛 츄러스 그네", 1200));
            items.Add(new Item("초코그늘 벤치", 1200));
            items.Add(new Item("링쿠키 울타리", 1200));
            items.Add(new Item("롤케이크 가든 테이블", 1200));
            items.Add(new Item("롤케이크 화단", 1200));
            items.Add(new Item("초코막대 건조대", 1200));

            string json = JsonConvert.SerializeObject(items);

            Console.WriteLine(json);
            //[{"id":0,"name":"딸기맛 츄러스 그네","price":1200},{"id":0,"name":"초코그늘 벤치","price":1200},{"id":0,"name":"링쿠키  울타리","price":1200},{"id":0,"name":"롤케이크 가든 테이블","price":1200},{"id":0,"name":"롤케이크 화단","price":1200},{"id":0,"name":"초코막대 건조대","price":1200}]

            File.WriteAllText("./my_items.json", json);

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

namespace Study13
{
    class App
    {
        //생성자
        public App()
        {
            string json = File.ReadAllText("./item_price.json");

            ItemPrice[] itemPrices = JsonConvert.DeserializeObject<ItemPrice[]>(json);

            foreach(ItemPrice price in itemPrices)
            {
                Console.WriteLine("{0} {1} {2}", price.id, price.name, price.price);
            }

            //특정 아이템 찾기
            ItemPrice foundPrice = null;
            int searchId = 100;
            foreach(ItemPrice price in itemPrices)
            {
                if(searchId == price.id)
                {
                    foundPrice = price;
                    break;
                }
            }

            if(foundPrice != null)
            {
                Console.WriteLine("아이템 있음!");
                Console.WriteLine("{0} {1} {2}", foundPrice.id, foundPrice.name, foundPrice.price);
            }
            else
            {
                Console.WriteLine("아이템({0}) 없음 ㅠ", searchId);
            }
        }
    }
}

↓여기 뭔가 꼬였다. 다시 확인해볼 것

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

namespace Study13
{
    class App
    {
        //생성자
        public App()
        {
            string json = File.ReadAllText("./item_price.json");

            ItemPrice[] itemPrices = JsonConvert.DeserializeObject<ItemPrice[]>(json);

            //키로 즉시 요소를 찾을 수 있다.
            Dictionary<int, ItemPrice> dicItemPrices = new Dictionary<int, ItemPrice>();

            //옮겨담기
            foreach(ItemPrice price in itemPrices)
            {
                dicItemPrices.Add(price.id, price);
            }

            //모든 요소 출력해보기
            foreach(KeyValuePair<int, ItemPrice> pair in dicItemPrices)
            {
                int id = pair.Key;
                ItemPrice price = pair.Value;
                Console.WriteLine("{0} {1} {2}", id, price.name, price.price);
            }

            //키로 찾아보자
            int searchItemPrice = 100;
            if (dicItemPrices.ContainsKey(searchItemPrice))
            {
                ItemPrice foundItemPrice = dicItemPrices[searchItemPrice];
                Console.WriteLine("{0} {1} {2}", foundItemPrice.id, foundItemPrice.name, foundItemPrice.price);
            }
            else
            {
                Console.WriteLine("그거({0}) 없음", searchItemPrice);
            }


        }
    }
}

dictionary가 익숙해지면 링큐 사용해서 만들어보자