JSON → TypeScript / C# 타입 변환

JSON 샘플로 TypeScript interface 나 C# class 를 만들며, 중첩 형과 optional·nullable 필드를 추론합니다.

불러오는 중…

사용법

  1. JSON 샘플(예: API 응답)을 입력란에 붙여넣습니다.
  2. 출력에서 TypeScript interface 또는 C# class 를 고릅니다.
  3. 최상위 형 이름을 정합니다(비워 두면 Root). JSON 이 배열이면 원소는 이름 뒤에 Item 을 붙인 형(예: RootItem)이 됩니다.
  4. 입력하는 대로 코드가 바뀝니다. 중첩 객체는 키 이름을 PascalCase 로 바꾼 별도 형이 되고, 배열 안의 객체는 단수형 이름(items → Item)을 씁니다.
  5. 복사를 눌러 코드를 복사합니다. 올바른 JSON 이 아니면 "올바른 JSON 이 아닙니다" 와 파서 메시지가 표시됩니다.

자주 묻는 질문

입력한 JSON 이 서버로 전송되나요?
아니요. 브라우저 안에서 타입을 만듭니다.
optional·nullable 은 어떻게 정하나요?
같은 배열에 있는 객체들은 하나의 형으로 합칩니다. 일부 객체에만 있는 필드는 optional(TypeScript 는 이름 뒤 ?, C# 은 nullable 형), 샘플 어딘가에서 null 인 필드는 TypeScript 에서 | null, C# 에서 ? 가 붙습니다.
숫자는 어떤 형이 되나요?
TypeScript 는 모든 숫자를 number 로 씁니다. C# 은 정수는 int, int 범위(±2147483647)를 넘는 정수는 long, 소수가 있으면 double 이며, 한 필드에 섞여 있으면 가장 넓은 형을 씁니다. JSON 의 1.0 은 정수로 봅니다.
종류가 섞인 배열, 빈 배열, null 만 있는 필드는요?
TypeScript 는 종류가 다른 값을 string | number 같은 유니온으로 만들어, 섞인 배열은 (string | number)[] 가 됩니다. C# 은 유니온이 없어 object 를 씁니다. 빈 배열은 unknown[] / List<object>, 늘 null 인 필드는 null / object? 가 됩니다.
C# 속성 이름은 어떻게 정해지나요?
JSON 키를 PascalCase 로 바꿉니다(user_id → UserId). 속성 이름이 키와 다르면 System.Text.Json 용 [JsonPropertyName] 특성으로 원래 키를 남깁니다. TypeScript 에서는 식별자로 쓸 수 없는 키를 따옴표로 감쌉니다.