using System.IO;
using Newtonsoft.Json;
public App()
{
string path = "./item_data.json";
string json = File.ReadAllText(path);
// 역직렬화 하기
// json형식에 따라 형식 매개변수가 달라진다.
ItemData[] itemDatas = JsonConvert.DeserializeObject<ItemData[]>(json);
// itemDatas의 값은 ItemData타입의 배열 인스턴스
// 배열 안에 요소: ItemData클래스의 인스턴스 x 5
// 키-값 컬렉션에 데이터 넣기
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)
{
Console.WriteLine("key:{0}, val:{1}, {2}", pair.Key, pair.Value.name, pair.Value.damage);
}
}
}
public class ItemData
{
public int id;
public string name;
public float damage;
}
[ //item_data.json
{
"id": "100",
"name": "장검",
"damage": "5"
},
{
"id": "101",
"name": "단검",
"damage": "3.5"
},
{
"id": "102",
"name": "도끼",
"damage": "4.8"
},
{
"id": "103",
"name": "활",
"damage": "4"
},
{
"id": "104",
"name": "지팡이",
"damage": "0"
}
]
using System.IO;
using Newtonsoft.Json;
class App
{
public App()
{
string path = "./jewel_data.json";
string json = File.ReadAllText(path);
JewelData[] jewelDatas = JsonConvert.DeserializeObject<JewelData[]>(json);
Dictionary<int, JewelData> dicJewelDatas = new Dictionary<int, JewelData>();
foreach(JewelData data in jewelDatas)
{
dicJewelDatas.Add(data.id, data);
}
foreach(KeyValuePair<int, JewelData> pair in dicJewelDatas)
{
Console.WriteLine("id:{0}, name:{1}, type:{2}", pair.Value.id, pair.Value.name, pair.Value.type);
}
}
}
public class JewelData
{
public int id;
public string name;
public int type;
}
[ //jewel_data.json
{
"id": "100",
"name": "골드",
"type": "0"
},
{
"id": "101",
"name": "다이아",
"type": "1"
},
{
"id": "102",
"name": "사파이어",
"type": "2"
},
{
"id": "103",
"name": "루비",
"type": "3"
}
]