UTILS.
100% 브라우저 내 실행
💠

JSON을 C# 클래스로 변환

JSON 샘플에서 System.Text.Json 또는 Newtonsoft.Json용 C# 모델 클래스를 생성합니다. PascalCase 속성과 nullable 값 타입을 지원합니다.

출력

이 도구에 대하여

JSON을 C# 클래스로 변환 도구는 붙여넣은 JSON 샘플을 C# 모델 클래스나 record로 변환하여, .NET 개발자가 API 응답으로부터 DTO를 몇 초 만에 스캐폴딩할 수 있게 합니다. JSON을 파싱하고 C# 타입을 재귀적으로 추론하며 객체마다 타입 하나를 출력합니다. 문자열은 string, ISO 날짜-시간 문자열은 DateTime, 정수는 int 또는 long, 그 외 숫자는 double, 불리언은 bool, 배열은 List<T>, 중첩 객체는 이를 참조하는 부모보다 먼저 선언된 각자의 PascalCase 클래스가 됩니다.

모든 파싱과 코드 생성은 JSON.parse와 순수 JavaScript로 브라우저에서 로컬로 이루어지며 아무것도 업로드되지 않습니다. 속성은 PascalCase 자동 속성 public T Prop { get; set; }으로 출력됩니다. JSON 키가 PascalCase 속성 이름과 다르면 도구가 System.Text.Json에는 [JsonPropertyName("originalKey")]를, Newtonsoft에는 [JsonProperty("originalKey")]를 추가하며 필요한 using 지시문만 포함됩니다.

어떤 샘플에서든 null일 수 있는 값 타입 속성은 nullable(int?, double?, bool?, DateTime?)로 만들어지며, string과 List 같은 참조 타입은 이미 nullable입니다. 직렬화기 토글은 속성과 using 스타일을 System.Text.Json(기본값)과 Newtonsoft.Json 사이에서 전환하고, 형태 토글은 클래스(기본값) 또는 record를 출력합니다. 코드를 복사하거나 .cs 파일로 다운로드하세요.

자주 묻는 질문

JSON 타입은 C#으로 어떻게 매핑되나요?
문자열은 string, ISO 날짜-시간은 DateTime, 정수는 int(int 범위를 넘으면 long), 정수가 아닌 숫자는 double, 불리언은 bool, 배열은 List<T>, 객체는 이름 있는 클래스나 record가 됩니다. nullable 값 타입은 뒤에 ? 한정자가 붙습니다.
System.Text.Json인가요, Newtonsoft인가요?
직렬화기 토글이 둘 중 하나를 선택합니다. 이는 속성 이름이 JSON 키와 다를 때 사용되는 속성(System.Text.Json에는 [JsonPropertyName("key")], Newtonsoft에는 [JsonProperty("key")])과 해당 using 지시문을 제어합니다.
클래스 대신 record를 생성할 수 있나요?
네. 형태 토글은 public class(기본값)와 public record 사이를 전환하며, 동일한 PascalCase 자동 속성과 JSON 속성을 유지하므로 코드베이스가 선호하는 스타일을 선택할 수 있습니다.
JSON이 비공개로 처리되나요?
네. 모든 것이 JSON.parse와 순수 JavaScript로 브라우저에서 실행됩니다. 샘플은 절대 업로드되지 않으므로 실제 API 페이로드를 붙여넣어도 안전합니다.

더 많은 도구