Utilo

JSON 타입 생성기

JSON에서 Go 구조체, Rust serde 구조체, Zod 스키마, Pydantic 모델, Kotlin data class, Java record, C# 클래스, Swift Codable, TypeScript 타입을 생성합니다. 배열 안의 선택적·nullable 필드를 자동으로 감지합니다.

이 JSON에서 타입 생성자가 하는 일

큰 API 응답을 위해 모델 클래스를 손으로 작성하는 것은 느리고 오류가 발생합니다. JSON 샘플을 붙이면 이 도구는 완전한 타입 모델을 추론하고 json 태그, serde 파생, Zod 스키마, Pydantic 모델, Kotlin 데이터 클래스, Java 레코드, C# 클래스, Swift Codable 구조 또는 TypeScript 인터페이스로 Go 구조로 인쇄합니다. 네스트된 객체는 고유의 이름의 타입이 되고, 객체 배열은 통합되어 어떤 요소에서든 볼 수 있는 모든 필드가 캡처되고, 추론은 웹 워커에서 실행되므로 멀티 메가바이트 샘플도 페이지를 동결하지 않습니다.

사용 방법

  1. JSON을 입력에 붙여넣거나 샘플을 로드합니다.
  2. ** 루트 타입 이름 **를 설정, 예를 들어 User 또는 OrderResponse.
  3. 목표 언어 탭을 선택하세요. 출력은 즉시 재생됩니다.
  4. 코드를 프로젝트에 복사하고, 도메인 지식이 추론을 능가하는 곳의 이름이나 타입을 조정하세요.

추론이 어떻게 작동하는지

  • ** 선택 필드:** 배열의 일부 요소에 키가 없으면 선택적으로 표시됩니다 (TS에서 ?, Rust에서 Option<T>, Go에서 omitempty, Pydantic에서 = None).
  • 무용수 필드: null 값은 대상 언어에서 필드를 무용수 합니다.
  • ** 숫자:** 정수와 부동변수는 별도로 추적됩니다. 따라서 42은 int64/i64/Long이 되고 4.2는 부동변수 유형이 됩니다.
  • ** 혼합 타입:** 같은 필드가 다른 타입을 포함할 때, 유니온이 있는 언어 (TypeScript, Zod, Pydantic) 는 유니온을 얻으며, 다른 언어들은 일반적인 JSON 값 타입으로 돌아갑니다.
  • 명칭: user_id 또는 created-at와 같은 키는 언어별로 구식 필드 이름으로 변환되며, 원래 키는 태그 또는 주석 (json:"user_id", #[serde(rename)], @SerialName, CodingKeys) 로 보존됩니다.

팁

  • 대표적인 표본을 먹여보죠. 빈 배열을 가진 하나의 객체는 도구에 배열의 항목에 대해 아무 것도 말하지 않습니다.
  • 선택 필드를 안정적으로 캡처하기 위해 여러 응답을 하나의 상위 레벨 배열로 통합합니다.
  • Zod 출력은 스키마와 추론된 타입을 모두 내보냅니다. 그래서 실행시간 검증과 정적 타이핑을 함께 얻을 수 있습니다.

자주 묻는 질문

제 JSON은 어디든 업로드 되었나요?

아니, 아니 파싱과 코드 생성은 배경 작업자로 브라우저에서 이루어집니다.

왜 필드가 any 또는 interface{}로 입력되는가?

모든 샘플에서 null이거나 빈 배열이어서 구체적인 유형을 추론할 수 없었습니다. 실제 값의 표본을 제공하세요.

데이트를 할 수 있나요?

JSON에는 날짜 타입이 없으므로 ISO 문자열은 문자열로 유지됩니다. 수동으로 time.Time, datetime 또는 Date로 바꾸세요. 디코더가 지원한다면요.

JSON 스키마를 생성할 수 있나요?

Zod 또는 Pydantic 출력을 사용하십시오. 두 라이브러리 모두 JSON 스키마를 직접 내보낼 수 있습니다.

네. 모든 처리는 JavaScript, Web Worker, Web API를 사용해 브라우저에서 직접 이루어집니다. 입력하거나 붙여넣거나 업로드한 내용은 서버로 전송되지 않습니다.

이 페이지는 영어에서 자동 번역되었습니다. 오류를 발견하시면 알려 주세요.