C# : JSON 사용법

2023. 6. 27. 17:10· C#
목차
  1. ✅ C# : Newtonsoft.Json
  2. JsonConverter.cs
  3. 사용법
  4. ✅ C# : Newtonsoft.Json - 끝
  5. 관련 포스팅

JSON은 JavaScript Object Notation의 약자로 가벼운 데이터를 주고받는 용도로 많이 사용됩니다. 또한, 문자를 사용하기 때문에 프로그래밍 언어뿐 아니라 사람이 확인하기도 매우 좋습니다. 그래서 JSON은 데이터 표준 방식 중 하나가 되었습니다. C#에서 JSON을 사용하는 것은 아주 쉬운데 제가 사용하고 있는, 아주 조금 더 편하게 쓰는 방법을 소개합니다.

 

 


✅ C# : Newtonsoft.Json

 

 

Newtonsoft.Json은 nuget에서 가장 많이 설치된 패키지 중 하나로 Visual Studio에서 nuget 찾아보기 탭을 들어가면 항상 상위에 위치하고 있습니다. Newtonsoft.Json 패키지를 설치합니다.

 

class -> JSON 변환에는 Newtonsoft.Json를 사용하고

JSON -> class로 변환에는 아래 코드를 사용합니다.

JSON은 배열 형태의 데이터 저장도 표현이 가능한데 C#에서 JSON을 배열형태로 받아오기 위해서는 List<> Type으로 Newtonsoft.Json.DeserializeObject를 호출해야합니다. 은근히 귀찮아서 함수명으로 구분하기 위한 class를 생성합니다.

 

 

 

JsonConverter.cs

public class JsonConverter<T> where T : class, new()
{
    public static List<T>? DeserializeToList(string source)
    {
        if (source == null)
        {
            return null;
        }
        return JsonConvert.DeserializeObject<List<T>>(source);
    }

    public static T? Deserialize(string source)
    {
        if (source == null)
        {
            return null;
        }
        return JsonConvert.DeserializeObject<T>(source);
    }
}

 

JsonConverter 클래스를 생성합니다.

 


 

사용법

// ..... 생략 ....

SetAPI.PDSCHInfo[2].state = 0;
SetAPI.LimitInfo.target_pwr = 24;
SetAPI.LimitInfo.pwr_thrshld = 2;
SetAPI.LimitInfo.freq_offset = 0.05;
SetAPI.LimitInfo.evm = 2.5;
SetAPI.LimitInfo.target_pwr = 2300;


// 단일 클래스
string singleClass 
	= JsonConvert.SerializeObject(SetAPI, Formatting.None);
ds_SetAPI singleClassResult 
	= JsonConverter<ds_SetAPI>.Deserialize(singleClass);


// List<클래스>
List<ds_SetAPI> listAPI = new List<ds_SetAPI>();
listAPI.Add(SetAPI);
listAPI.Add(SetAPI);

string listClass 
	= JsonConvert.SerializeObject(listAPI, Formatting.None);
List<ds_SetAPI> listClassResult 
	= JsonConverter<ds_SetAPI>.DeserializeToList(listClass);

JSON으로 변환하고자할 때는 JsonConvert (Newtonsoft.Json)을 사용합니다.

JSON을 다시 클래스로 변환할 때는 변환하려는 목표가 List 라면 JsonConverter의 DeserializeToList()를

단일 클래스라면 Deserialize()를 사용합니다.

 

 

✅ C# : Newtonsoft.Json - 끝

 

관련 포스팅

 

 

C# 에서 설정 저장하는 'ini' 간편 소스코드

프로그램의 상태를 저장하는 방법으로 INI를 많이 사용합니다. INI는 사용이 간편하고 초기화가 쉽기 때문에 많이 사용하지만 암호화가 제외된 만큼 보안에 취약하기도 합니다. 하지만 간단한 프

endtime-co-kr.tistory.com

 

  1. ✅ C# : Newtonsoft.Json
  2. JsonConverter.cs
  3. 사용법
  4. ✅ C# : Newtonsoft.Json - 끝
  5. 관련 포스팅
'C#' 카테고리의 다른 글
  • C#에서 WebP 변환 방법
  • WPF .NET 7 에서 NLog 사용법 (json)
  • C# 에서 설정 저장하는 'ini' 간편 소스코드
  • C# : ICloneable 사용법
YUNYUN3915
YUNYUN3915

공지사항

  • 블로그 이전 취소

인기 글

태그

  • C#
  • DataGrid
  • Expanding Event
  • IDialogService
  • RelayCommand
  • ItemsControl
  • WPF style
  • Git취소
  • itemssource
  • WindowsFormsHostingWpfControl
  • PasswordBox DataBinding
  • OnPropertyChanged
  • PasswordBox MVVM
  • 메세지팝업
  • command
  • TreeView
  • 문자열 관리
  • TreeViewItem
  • ICloneable
  • 윈도우탐색기
  • WPF 흰색바
  • IValueConverter
  • GIT
  • wpf
  • ElementHost
  • CS8602
  • wpf 폰트
  • wpf 전역 스타일
  • 어트리뷰트
  • DialogService
hELLO · Designed By 정상우.v4.2.0
YUNYUN3915
C# : JSON 사용법
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.