오늘 배운 방법 외에 추가로 한가지 밖에 못 찾았습니다
json 파일로 변환할 item_data 엑셀 데이터 (homeEscape 게임 아이템)
1. File.ReadAllText(string path) 메서드로 읽어오기
1) App class 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using Newtonsoft.Json;
namespace Study_013
{
class App
{
public App()
{
// 1.File.ReadAllText(string path)
string json = File.ReadAllText(path);
itemData[] arrItemDatas = JsonConvert.DeserializeObject<itemData[]>(json);
Dictionary<int, itemData> dicItemDatas = new Dictionary<int, itemData>();
foreach(itemData data in arrItemDatas)
{
}
foreach(KeyValuePair<int, itemData> pair in dicItemDatas)
{
}
}
}
}
|
2) itemData class 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Study_013
{
class itemData
{
public int id;
public string name;
public int item_type;
}
}
|
3) 결과값
2. StreamReader 메서드로 읽어오기
1) App class 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
namespace Study_013
{
class App
{
public itemData[] arrItemDatas;
public App()
{
// 2. StreamReader 메서드 사용해서 읽어오기
//File. OpenText: UTF-8로 인코딩된 기존 텍스트 파일을 읽기용으로 연다
//StreamReader file: 지정된 파일 이름에 대해 System.IO.StreamReader 클래스의 새 인스턴스를 초기화한다.
using (StreamReader file = File.OpenText(@"./item_type.json"))
{
//JsonSerializer : 개체 또는 값 형식을 JSON으로 직렬화하고 JSON을 개체 또는 값 형식으로 역직렬화하는 기능을 제공한다..
JsonSerializer serializer = new JsonSerializer();
//itemData[] 타입으로 역직렬화
arrItemDatas = (itemData[])serializer.Deserialize(file, typeof(itemData[]));
}
Dictionary<int, itemData> dicItemDatas = new Dictionary<int, itemData>();
foreach (itemData data in arrItemDatas)
{
dicItemDatas.Add(data.id, data);
}
foreach (KeyValuePair<int, itemData> pair in dicItemDatas)
{
Console.WriteLine("{0}, {1}, {2}", pair.Key, pair.Value.name, pair.Value.item_type);
}
}
}
}
|
2) itemData class 는 동일
3) 결과값
'C# > 과제' 카테고리의 다른 글
2020.04.27. 과제 - 승급하기 3 (메이플 스토리 / 몬스터, 레벨업) (0) | 2020.04.28 |
---|---|
2020.04.22. 과제 - 객체지향[OOP] 프로그래밍 특징 / 5대 원칙 (0) | 2020.04.22 |
2020.04.20. 과제 - 길바닥 아이템 획득하기(컬렉션(list)) (0) | 2020.04.21 |
2020.04.18. 과제 - 음식 만들기 (배열(정렬), 클래스) (0) | 2020.04.18 |
2020.04.14. 과제 - 아이템 배열 값 빼기, 배열 정리하기(Inventory class, Item class) (0) | 2020.04.14 |