C#

미션, 아이템 엑셀->json->데이터

s0002 2023. 1. 13. 14:26

그냥 해본 것

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

namespace DataMakePractice
{
    class App
    {
        //생성자
        public App()
        {
            string jsonItem = File.ReadAllText("./item_data.json");

            ItemData[] itemDatas = JsonConvert.DeserializeObject<ItemData[]>(jsonItem);
            Dictionary<int, ItemData> dicItemDatas = new Dictionary<int, ItemData>();

            foreach(ItemData data in itemDatas)
            {
                dicItemDatas.Add(data.id, data);
            }

            foreach(KeyValuePair<int, ItemData> pair in dicItemDatas)
            {
                ItemData data = pair.Value;
            }

            string jsonMission = File.ReadAllText("./mission_data.json");

            MissionData[] missionDatas = JsonConvert.DeserializeObject<MissionData[]>(jsonMission);
            Dictionary<int, MissionData> dicMissionDatas = new Dictionary<int, MissionData>();

            foreach(MissionData data in missionDatas)
            {
                dicMissionDatas.Add(data.id, data);
            }

            foreach(KeyValuePair<int,MissionData> pair in dicMissionDatas)
            {
                MissionData data = pair.Value;

                Console.WriteLine("{0},\n{1}\n보상: {2}x{3}", data.missionName, data.missionExplication, data.rewardItemId, data.amount);
                //item의 id말고 이름을 출력하고 싶은데 어떻게 하는지 모르겠다
            }

        }
    }
}

 

item 이름 출력하도록 고친 것

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

namespace DataMakePractice
{
    class App
    {
        string jsonItem = File.ReadAllText("./item_data.json");
        
        Dictionary<int, ItemData> dicItemDatas = new Dictionary<int, ItemData>();
        Dictionary<int, MissionData> dicMissionDatas = new Dictionary<int, MissionData>();

        //생성자
        public App()
        {

            ItemData[] itemDatas = JsonConvert.DeserializeObject<ItemData[]>(jsonItem);

            foreach (ItemData data in itemDatas)
            {
                dicItemDatas.Add(data.id, data);
            }

            foreach(KeyValuePair<int, ItemData> pair in dicItemDatas)
            {
                ItemData data = pair.Value;
            }

            string jsonMission = File.ReadAllText("./mission_data.json");

            MissionData[] missionDatas = JsonConvert.DeserializeObject<MissionData[]>(jsonMission);
            

            foreach(MissionData data in missionDatas)
            {
                dicMissionDatas.Add(data.id, data);
            }

            foreach(KeyValuePair<int,MissionData> pair in dicMissionDatas)
            {
                MissionData data = pair.Value;
                ItemData itemData = this.dicItemDatas[data.rewardItemId];
                string rewardName = itemData.name;
                Console.WriteLine("{0}\n{1}\n보상: {2}x{3}", data.missionName, data.missionExplication, rewardName, data.amount);
                Console.WriteLine();
            }
        }
    }
}