Kotlin Ready

JSON → Kotlin Data Classes Null 제약 & Serialization 힌트

JSON2Class는 Kotlin 친화적인 camelCase 필드명, `List`, `Map` 매핑을 자동으로 적용하고 필요 시 `@SerialName` 주석을 붙일 수 있도록 경로 정보를 제공합니다. 백엔드, Android, 서버리스 환경 모두 지원합니다.

⚡ Data Class

copy / equals / hashCode sealed structure 가이드

JSON Payload

Kotlin data class 설계를 위한 스크래치 패드

JSON 예시를 모아두고 nullable 정책이나 List 매핑을 미리 논의할 수 있도록 간단한 입력 공간을 추가했습니다. 루트 data class명을 정해 두고, 이후 커스텀 로직을 붙일 준비를 하세요.

Kotlin data class

// JSON을 입력하고 `Kotlin 변환 실행` 버튼을 눌러 주세요.

Idiomatic Naming

JSON snake_case를 자동으로 camelCase로 변환해 Kotlin 코드 스타일 가이드를 그대로 따릅니다.

  • 예약어 대응
  • 중복 시 접미사 부여
  • 경로 기반 네임스페이스

Serialization 친화

`kotlinx.serialization`을 염두에 두고 생성되며, 필요시 `@SerialName` 매핑을 쉽게 추가할 수 있도록 필드 경로를 제공합니다.

  • List / Map 자동 추론
  • Nullable 안전성
  • Sealed hierarchy 가이드

문서화 연동

같은 JSON에서 Markdown/Confluence 표를 만들어 스키마 문서와 data class를 동시에 관리할 수 있습니다.

  • 필드 설명 템플릿
  • 협업 시그널 일원화
  • QA/테스트 전달 용이

활용 시나리오

  1. 서버 응답을 Android ViewModel/Compose 상태로 변환할 때.
  2. 서버리스 함수에서 요청/응답 DTO를 빠르게 정의할 때.
  3. 테스트 픽스처를 data class copy로 조립할 때.

추천 워크플로우

  1. JSON을 붙여 넣고 Nullable 정책을 팀 규칙에 맞춥니다.
  2. Kotlin 탭의 출력을 가져와 `@Serializable`을 추가합니다.
  3. Confluence 표/Markdown으로 QA와 스키마를 공유합니다.

샘플 출력

ProfilePayload data class

JSON2Class는 중첩 구조를 분리하고, 배열은 `List`, 날짜 문자열은 `String`으로 둔 뒤 팀 규칙에 따라 Instant 등으로 교체할 수 있도록 최소한의 타입만 지정합니다.

data class ProfilePayload(
  val id: String,
  val nickname: String,
  val tags: List<String>?,
  val contact: Contact,
  val settings: Settings
)

data class Contact(
  val email: String,
  val phone: String?
)

data class Settings(
  val marketing: Boolean,
  val locale: String,
  val theme: Theme
)

data class Theme(
  val mode: String,
  val accent: String
)