JSON → 타입 코드 변환 (TypeScript·Swift·Kotlin 외)

JSON 예시를 붙여넣으면 8개 언어의 타입 정의 코드를 만들어 줍니다. quicktype 엔진을 씁니다.

브라우저 안에서만 동작합니다. 입력한 내용은 전송·저장되지 않습니다.

사용 방법

  1. API 응답 같은 JSON 예시를 왼쪽 칸에 붙여넣습니다.
  2. 변환할 언어를 고르고, 필요하면 최상위 타입 이름을 바꿉니다.
  3. 변환을 누릅니다. 중첩 객체는 각각 별도 타입이 됩니다.
  4. 코드를 복사하거나 소스 파일로 내려받습니다.

API 응답마다 모델 타입을 손으로 쓰면 오래 걸리고 오타도 생깁니다. 이 JSON 타입 변환기는 예시 JSON 을 읽어 맞는 코드를 만들어 줍니다. TypeScript 인터페이스, Codable 을 따르는 Swift 구조체, Kotlin data class, Dart 클래스, json 태그가 붙은 Go 구조체, Python dataclass, C# 클래스, Java 클래스를 지원합니다. 중첩 객체는 각자 이름 붙은 타입이 되고, 배열은 타입이 있는 리스트가 되며, 키 이름은 대상 언어의 명명 규칙으로 바뀌고 필요한 곳에는 원래 JSON 키가 남습니다.

변환은 오픈소스 quicktype 의 엔진인 quicktype-core(Apache License 2.0)가 맡고, 처음 변환을 누를 때 이 페이지로 불러옵니다. "타입만" 을 체크하면 순수한 타입 선언만 나옵니다. Swift 는 Codable 채택과 CodingKeys 는 남기고 편의 이니셜라이저만 뺍니다. 체크를 풀면 TypeScript Convert 클래스, Kotlin Jackson 어노테이션, Python from_dict 함수처럼 quicktype 이 기본으로 쓰는 파싱 도우미 코드까지 함께 나옵니다.

타입은 예시에서 추론하므로 모든 필드가 드러나는 데이터를 넣는 것이 좋습니다. 값이 null 이면 옵셔널이나 any 계열 타입이 되고, 소수점 없는 숫자는 정수가 되며, 여러 곳에 같은 모양으로 나오는 객체는 한 타입으로 합쳐질 수 있습니다. 붙여넣은 JSON 은 브라우저 밖으로 나가지 않습니다. 파싱과 코드 생성 모두 기기 안에서 끝나며 업로드하거나 저장하지 않습니다.

자주 묻는 질문

JSON 이 서버로 전송되나요?

아니요. quicktype-core 가 브라우저 안에서 동작합니다. 붙여넣은 JSON 은 어디에도 업로드·저장되지 않습니다.

왜 any 나 옵셔널 타입으로 나오나요?

예시에서 그 값이 null 이었거나 일부 객체에 필드가 없었기 때문입니다. 실제 값이 든 예시를 넣으면 구체적인 타입이 나옵니다.

Swift 결과는 Codable 인가요?

네. Swift 구조체는 Codable 을 채택하고, 원래 JSON 키와 연결되는 CodingKeys 가 들어갑니다.

라이브러리 없이 Kotlin data class 만 받을 수 있나요?

네. "타입만" 을 체크해 두면 순수 data class 만 나옵니다. 체크를 풀면 Jackson 어노테이션과 도우미 코드가 붙습니다.

관련 도구