041. json을 처리해보자

2022. 1. 11. 19:06·사소한 아이의 소소한 스킬/C#
반응형

이번엔 JSON이다.

 

JSON은 사실 나도 잘 모르는............

 

단순 XML같은 자료라고만 알고있다...

 

그리하여 JSON은 언어가 아니므로 어디서든 사용할 수 있는 만국 공통 자료형태라고 생각하면 좋을 것같다.

 

근데.. 이런 JSON을 왜 만들었나.. XML도있는데..?

 

파싱의 속도, 보기편함 등의 이유로 만들어졌다고 한다.

 

XML보다 파싱도 빠르고 보기도 편하다나.......

 

사실 실제 프로젝트에서 사용해본적은 없기에 아직까지 와닿진않는다....

 

그렇다고 사용하는법을 몰라선 안되는 법이니..

 

사용하는 법을 알아보자..!!

 

간단하게 class를 만들고 해당 class를 갖고있는 변수데이터를 JSON으로 만든 후 파일로 저장하는 코드를 확인해보도록 하자.

 

일단 JSON을 사용하기 위해서는 Nuget에서 Newtonsoft.Json을 설치해 주어야 한다.

 

간단하게 프로젝트에서 Nuget으로 들어가 Newtonsoft.Json을 검색하여 설치해주자

 

1.6G번이나 다운로드 된 상당한 녀석이다............

 

그 후 임의의 Car 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
    public enum TYPE
    {
        GASOLINE = 0,
        DISSEL = 1,
        ELECTRONIC =2
    }
    public class Car
    {
        private TYPE _CAR_TYPE;
 
        public TYPE CAR_TYPE
        {
            get { return _CAR_TYPE; }
            set { _CAR_TYPE = value; }
        }
 
        private string _manufacturer;
 
        public string MANUFACTURER
        {
            get { return _manufacturer; }
            set { _manufacturer = value; }
        }
 
        private int _price;
 
        public int PRICE
        {
            get { return _price; }
            set { _price = value; }
        }
    }
Colored by Color Scripter
cs

 

일반적인 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
 List<Car> Car_List = new List<Car>();
 
            var car1 = new Car();
            car1.CAR_TYPE = TYPE.ELECTRONIC;
            car1.MANUFACTURER = "TESLA";
            car1.PRICE = 10000;
 
            Car car2 = new Car();
            car2.CAR_TYPE = TYPE.ELECTRONIC;
            car2.MANUFACTURER = "HYUNDAI";
            car2.PRICE = 8000;
 
            Car car3 = new Car();
            car3.CAR_TYPE = TYPE.ELECTRONIC;
            car3.MANUFACTURER = "KIA";
            car3.PRICE = 8500;
 
            Car_List.Add(car1);
            Car_List.Add(car2);
            Car_List.Add(car3);
 
            var json1 = JArray.FromObject(Car_List);
 
            File.WriteAllText(Path.Combine(System.Environment.CurrentDirectory, "JSON_TEST.json"), json1.ToString());
cs

 

Car Class를 가지고 List구조의 변수를 만들었다.

 

해당 데이터들을 위와같이 넣어준 후 JArray.FromObject를 해주면... 끝... 간단하다....

 

그리고 File.WriteAllText함수를 이용하여 path를 선언해주면 파일로 저장하기 끝!

 

 

위와 같은 파일이 생성된다.

 

그렇다면 JSON파일을 불러오려면 어떻게 해야 하는가..?

 

그것은 또 아래를 보면....

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 string jsonFilePath = Path.Combine(System.Environment.CurrentDirectory, "JSON_TEST.json");
 
            using (StreamReader file = File.OpenText(jsonFilePath))
            {
                using (JsonTextReader reader = new JsonTextReader(file))
                {
                    JArray json = (JArray)JToken.ReadFrom(reader);
 
                    tb.Text = (string)json[0]["MANUFACTURER"] + Environment.NewLine;
                    tb.Text += Enum.Parse(typeof(TYPE), (string)json[0]["CAR_TYPE"]) + Environment.NewLine;
                    tb.Text += (string)json[0]["PRICE"] + Environment.NewLine;
 
                    tb.Text += Environment.NewLine;
                    tb.Text += Environment.NewLine;
 
                    // Json Data 전체 출력
                    tb.Text += json.ToString();
 
                }
            }
Colored by Color Scripter
cs

 

간단.....

 

저장한 파일을 StreamReader를 통해 불러온 후 JsonTextReader로 불러오면 끝난다.

 

각 모듈 데이터에 접근하기 위해서는 List Index를 검색하면되고, DataRow 데이터를 참조하듯 데이터를 가져오면 된다..

 

이상 끝!

 

프로젝트는 여기서!

https://drive.google.com/file/d/1-1-TXgGaElvbIoQIIdeQo6isZRLWByLL/view?usp=sharing

반응형
저작자표시 비영리 변경금지 (새창열림)
'사소한 아이의 소소한 스킬/C#' 카테고리의 다른 글
  • C# 실행파일 이름 변경하기..!!
  • ChatGPT로 써보는 C# Thread
  • 039. 상속의 방법(virtual, abstract, interface)
  • 038. 객체지향의 특징
JOOJI
JOOJI
그냥 혼자좋아하는 것들 남기는 블로그....
  • JOOJI
    사소한프로그래머의 소소한행복
    JOOJI
  • 전체
    오늘
    어제
    • 분류 전체보기 (951) N
      • 사소한 아이의 소소한 일상 (245)
      • 사소한 아이의 소소한 먹거리 (43)
      • 사소한 아이의 소소한 정보 (75) N
      • 사소한 아이의 소소한 감사 (4)
      • 사소한 아이의 소소한 운동 (53) N
      • 사소한 아이의 소소한 여행 (40)
        • 2013_전주 (1)
        • 2014_독일 (13)
        • 2014_군산 (1)
        • 2015_제주도 (3)
        • 2015_서울모토쇼 (3)
        • 2015_진해 (1)
        • 2015_전주 (1)
        • 2016_여수 (1)
        • 2020_강릉 (1)
        • 2022_제주도 (4)
      • 사소한 아이의 소소한 강짱 (22)
        • 하트투하트 (10)
        • MAPS (1)
        • 화려한 유혹 (2)
        • 한여름의 추억 (2)
      • 사소한 아이의 TV (50)
        • Drama (9)
        • 예능 (32)
        • 사소한 아이의 다현 (9)
      • 사소한 아이의 소소한 스킬 (130)
        • Scaleform (2)
        • C# (74)
        • QT (3)
        • 알고리즘 (4)
        • Python (21)
        • PyQT5 (9)
        • C_C++ (2)
      • 사소한 아이의 소소한 축구 (283)
        • Korea (25)
        • Germany (45)
        • Bayern Munich (64)
        • Soccer_ETC (75)
        • Euro 2016 (12)
        • 친선경기 (3)
      • 사소한 아이의 소소한 생활정보 (6)
  • 블로그 메뉴

    • 홈
    • 태그
    • 미디어로그
    • 위치로그
    • 방명록
    • 관리
  • 링크

    • 독일여행
    • 레바티스토리
    • 프라치노 공간
    • 남성패션꿀템 블로그
  • 공지사항

  • 인기 글

  • 태그

    독일
    바이에른 뮌헨
    뮌헨
    회사밥
    WPF
    python
    c#
    문제
    분데스리가
    러닝
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
JOOJI
041. json을 처리해보자
상단으로

티스토리툴바