Online JSON Viewer
jsonviewer.stack.hu
객체
{
"name":"홍길동"
}
배열
[
{
"name": "장검",
"damage": 12
},
{
"name": "단검",
"damage": 9
}
]
https://shancarter.github.io/mr-data-converter/
Mr. Data Converter
shancarter.github.io
1.엑셀 파일 만든다
2. Mr.Convert가서 엑셀 데이터를 JSON문자열로 변환
3. Json Onlinve Viewer 유효성 체크 + 타입 객체 제거
4. JSON 문자열 복사 후 메모장에 item_data.json으로 저장
5. 내 visual studio 파일 실행 폴더 bin > Debug 안에다가 item_data.json 넣기
5. using System.IO; 해주기
6. App 클래스에 string json = File ReadAllText("./item_data.json");
7. Console.WriteLine(json); 해주기
8. Mapping 클래스 만들기 [App 클래스 만든거마냥 ItemData로 만들으라는 뜻]
9.이름은 ItemData.cs // 비슷하게 대문자로 만들기 , 엑셀 파일대로 public int id, string name ... 만들기]
특징 - 엑셀데이터의 컬럼명과 타입이 동일) , 생성자 안만듦
10. 도구 -> nuget관리자 -> 솔루션 용 nuget -> 찾아보기 -> 프로젝트 체크 -> NetJson설치
11. using Newtonsoft;
using Newtonsoft.Json;
12. 역직렬화
13. Dictionary에 담는다
using System;
using System.Collections.Generic;
using System.Data;
using System.Dynamic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using Newtonsoft;
using Newtonsoft.Json;
namespace FakeInventory
{
public class App
{
Dictionary<int, ItemData> dicItemDatas;
//생성자
public App()
{
string json = File.ReadAllText("./item_data.json");
//문자열 -> 객체 ( 역직렬화 )
ItemData[] arrItemDatas = JsonConvert.DeserializeObject<ItemData[]>(json);
Console.WriteLine(arrItemDatas.Length);
//컬렉션 사용전 반드시 인스턴스화
dicItemDatas = new Dictionary<int, ItemData>();
foreach (ItemData data in arrItemDatas)
{
Console.WriteLine("{0} {1} {2}",data.name, data.id , data.damage);
dicItemDatas.Add(data.id, data);
}
Console.WriteLine(dicItemDatas.Count);
foreach (KeyValuePair<int, ItemData> pair in this.dicItemDatas)
{
ItemData data = pair.Value;
Console.WriteLine("{0} {1} {2}", data.name, data.id, data.damage);
}
//객체 -> 문자열 ( 직렬화 )
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FakeInventory
{
public class ItemData
{
public int id;
public string name;
public int damage;
}
}
'C#프로그래밍' 카테고리의 다른 글
장비 착용, 몬스터 공격, 인벤토리, 아이템 지급 (0) | 2023.07.28 |
---|---|
JSON (0) | 2023.07.27 |
람다, Action<T> , Func<T> (0) | 2023.07.27 |
대리자, 무명메서드 (0) | 2023.07.27 |
List, Dictionary 복습 (0) | 2023.07.27 |