JSON → 코드 (TypeScript·Go·Rust·Python 등)

JSON을 붙여넣고 TypeScript·Go·Rust·Python·Java·Kotlin·Swift·C# 타입 정의를 생성합니다 — 언어는 드롭다운에서 선택. 무료, 업로드 없음.

🔒 브라우저에서 생성되며 JSON은 업로드되지 않습니다.

JSON을 원하는 언어의 타입 코드로

JSON 샘플을 붙여넣고 대상 언어를 고르면 바로 붙여넣을 수 있는 타입 정의가 나옵니다 — 중첩 객체는 중첩 타입으로, 배열은 타입이 있는 리스트로, 필드 타입은 값에서 추론됩니다. TypeScript 인터페이스, Go 구조체(json 태그), Rust 구조체(serde), Python 데이터클래스, Java 클래스(Jackson @JsonProperty), Kotlin 데이터 클래스(kotlinx.serialization), Swift Codable 구조체, C# 클래스(System.Text.Json)를 지원합니다. first_namefirstName으로 바꾸는 것처럼 키를 식별자로 고쳐야 할 때는 원래 키를 그 언어의 어노테이션이나 태그에 남기므로, 생성된 코드가 원본 JSON을 그대로 디코딩합니다. TypeScript는 이름을 바꾸는 대신 키를 따옴표로 감싸고, Python 데이터클래스에는 그런 어노테이션이 없어서 이름이 바뀐 필드가 원래 키와 어긋나는 유일한 대상입니다. 모든 처리는 브라우저에서 이뤄져 JSON은 업로드되지 않습니다.

자주 묻는 질문

어떤 언어를 지원하나요?

TypeScript·Go·Rust·Python(데이터클래스)·Java(Jackson)·Kotlin(kotlinx.serialization)·Swift(Codable)·C#(System.Text.Json). 언어 드롭다운에서 대상을 고르면 같은 JSON으로 어느 언어든 코드를 생성합니다.

식별자로 쓸 수 없는 JSON 키는 어떻게 되나요?

각 언어의 관례에 맞는 이름으로 바뀝니다 — first_name은 Java·Kotlin에서 firstName, C#에서 FirstName이 됩니다. 이때 원래 키를 함께 기록하므로 생성된 코드가 그대로 디코딩됩니다: Java는 Jackson의 @JsonProperty, Kotlin은 kotlinx.serialization의 @SerialName, C#은 [JsonPropertyName] 특성, Go는 json 구조체 태그, Rust는 #[serde(rename = "…")], Swift는 CodingKeys 열거형입니다. TypeScript는 키를 따옴표로 감싸 그대로 씁니다. 예약어인 키도 언어별로 처리합니다 — Java·Python은 뒤에 밑줄, Kotlin·Swift는 백틱, Rust는 raw 식별자를 씁니다.

중첩 객체와 배열도 처리하나요?

네. 중첩 객체는 중첩 타입 정의로, 배열은 타입이 있는 컬렉션으로 변환되며, 이름은 필드명과 지정한 루트 이름에서 만들어집니다.

JSON이 어딘가로 업로드되나요?

아니요. 파싱과 코드 생성이 전부 브라우저에서 이뤄져 민감한 데이터가 기기를 벗어나지 않습니다.