KO
내 도구

JSON을 C# 클래스로 변환

JSON을 C# 클래스나 레코드로 바꿉니다. List<T>, nullable 타입, DateTime과 Guid 감지, System.Text.Json 및 Newtonsoft 특성을 지원합니다.

C# 코드
생성된 타입 수
3

모든 샘플이 null이거나 샘플마다 값의 종류가 달라서 object를 썼습니다. 실제 타입을 알게 되면 바꾸세요.

10.0처럼 쓴 숫자는 정수로 읽히므로, 샘플이 모두 그런 필드는 int가 됩니다. double이 필요하면 소수가 있는 샘플을 하나 넣으세요.

내 도구 →
광고

JSON 응답을 붙여 넣으면 역직렬화에 쓸 수 있는 C# 모델 클래스를 만들어 줍니다. 중첩된 객체는 각각 클래스가 되고, 배열은 List<T>가 되며, 배열에 객체가 여러 개 있으면 필드를 합쳐서 일부 항목에 없거나 가끔 null인 필드를 nullable(int?, string?)로 만듭니다. 정확한 JSON 이름을 담은 특성 덕분에 camelCase나 snake_case 키도 PascalCase 속성에 매핑됩니다. JSON은 브라우저 밖으로 나가지 않습니다.

사용 방법

  1. 대표적인 JSON 샘플을 붙여 넣습니다. 항목이 여러 개인 배열일 때 타입이 가장 정확합니다.
  2. 루트 클래스 이름을 정하고, 원하면 네임스페이스도 입력합니다.
  3. 클래스 또는 위치 기반 레코드를, 그리고 System.Text.Json, Newtonsoft, 특성 없음 중에서 고릅니다.
  4. nullable 참조 형식과 DateTime/Guid 감지 여부를 정합니다.
  5. 코드를 .cs 파일에 복사합니다.

계산식

정수 → int(±2,147,483,647을 넘으면 long) · 소수 → double · true/false → bool · 텍스트 → string · ISO 날짜 → DateTime · UUID → Guid · [ … ] → List<T> · { … } → 클래스

같은 위치에서 본 값은 합칩니다. int와 double은 double이 되고, 종류가 섞이면 object가 됩니다. 일부 샘플에서 null이거나 일부 배열 항목에 없는 멤버는 nullable입니다. 값 형식에는 항상 ?가 붙고, 참조 형식에는 nullable 참조 형식이 켜져 있을 때 ?가 붙습니다. 같은 모양의 객체는 클래스 하나를 공유하며, 목록 항목 클래스는 키의 단수형으로 이름을 붙입니다(orders → Order).

예시

예제 사용자로 클래스 세 개가 만들어집니다. Root에는 int Id, string Name, string Email, bool IsActive, double Balance, DateTime CreatedAt, List<string> Tags, Address Address, List<Order> Orders, 그리고 샘플에서 null인 object? Manager가 있습니다. Order에는 string OrderId(order_id에서), double Total(59.9와 12가 합쳐져 double), int Items, string? Coupon이 있으며, 쿠폰은 두 번째 주문에만 있어서 nullable입니다.

자주 묻는 질문

System.Text.Json과 Newtonsoft 중 무엇을 쓰나요?

새 .NET 프로젝트는 기본 제공되는 System.Text.Json을 쓰며, 특성은 [JsonPropertyName("…")]입니다. 프로젝트가 이미 Json.NET을 쓴다면 Newtonsoft를 고르세요. 특성은 [JsonProperty("…")]입니다. 특성을 쓰면 C# 이름은 PascalCase로 두고 JSON은 자기 철자를 유지할 수 있습니다.

null을 허용하지 않는 속성이 초기화되지 않았다는 경고가 나오는 이유는 무엇인가요?

nullable 참조 형식을 켜면 생성자에서 설정하지 않는 string이나 클래스 속성에 경고 CS8618이 나옵니다. required(C# 11)를 붙이거나 기본값을 주거나, API가 생략할 수 있다면 nullable로 바꾸세요.

레코드는 언제 쓰나요?

읽기만 하는 데이터에 씁니다. 위치 기반 레코드는 간결하고 불변이며, 두 직렬화기 모두 생성자로 값을 채웁니다.

필드가 object 타입인 이유는 무엇인가요?

모든 샘플이 null이었거나 숫자와 텍스트처럼 종류가 섞여 있기 때문입니다. 실제 값이 있는 샘플을 쓰거나 타입을 직접 고치세요.

출처

최종 업데이트:

인용·퍼가기
APA

kakaoCalc. (2026, November 8). JSON을 C# 클래스로 변환. https://kakao.mobile/ko/tools/json-to-c-class-tool/

MLA

“JSON을 C# 클래스로 변환.” kakaoCalc, 8 Nov. 2026, kakao.mobile/ko/tools/json-to-c-class-tool/.

광고