Java 모델 자동화

JSON → Lombok 기반 Immutable Java Class Builder

JSON2Class는 JSON 구조를 분석하여 `private final` 필드, `@Getter`, `@AllArgsConstructor` 조합을 갖춘 DTO를 바로 출력합니다. 배열 Nullable 옵션과 숫자 타입 추론을 토글하면서 팀 규칙에 맞는 모델을 생성하세요.

🧱 불변 DTO

Null Guard · Nested Class 이름 충돌 방지 & 타입 추론

JSON Payload

붙여넣고 Java DTO 시나리오를 짜보세요

아래 입력창은 메인 변환기를 불러오지 않고도 JSON 구조를 메모해 둘 수 있는 공간입니다. 루트 클래스명을 정하고, 향후 Lombok 규칙을 테스트할 데이터를 직접 붙여넣어 보세요.

Lombok 옵션

• Setter, Builder 등 Lombok 어노테이션은 위 옵션에서 선택해 적용합니다.
• JSON 필드 앞에 `#notNull`, `#max:10`, `#length:20` 같은 지시어를 추가하면 자동으로 Validation annotation을 생성합니다.

Java 코드 결과

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

Immutable 패턴

모든 필드를 `private final`로 생성하고 생성자 주입을 강제해 스레드 안전성을 확보합니다.

  • 필드 재할당 불가
  • Builder 없이도 안정적
  • JSON 구조 유지

Lombok Ready

`@Getter`, `@AllArgsConstructor`를 자동으로 포함하여 IDE에서 바로 붙여 넣을 수 있습니다.

  • 보일러플레이트 제거
  • 테스트 코드 친화적
  • 빌더 패턴과 호환

유형 추론

숫자 타입은 `inferNumbers` 토글로 `int/long/double` 등을 구분하며 배열 Nullable 정책도 제어할 수 있습니다.

  • 필드 경로 기반 이름 생성
  • 중첩 클래스 자동 분리
  • List 타입 감지

3단계 사용법

  1. JSON을 붙여 넣고 루트 클래스명을 입력합니다.
  2. Nullable 배열, 숫자 추론 옵션을 조정합니다.
  3. Convert를 눌러 Java 탭에서 결과를 복사합니다.

베스트 프랙티스

  1. API 응답마다 프로젝트 Prefix를 붙여 클래스 충돌을 방지하세요.
  2. 생성된 DTO를 그대로 테스트 픽스처에 활용하면 Mock 작성 시간을 줄일 수 있습니다.
  3. Confluence 표와 함께 붙여 넣어 문서 일관성을 확보하세요.

샘플 출력

OrderRoot DTO

JSON2Class가 생성하는 클래스는 중첩 구조를 자동으로 펼치며, 배열은 `List`로 매핑됩니다. null 허용 시 `Optional` 대신 필드 Nullable을 유지하여 프레임워크-중립성을 보장합니다.

@Getter
@AllArgsConstructor
public class OrderRoot {
  private final Customer customer;
  private final List<OrderItem> items;
  private final String status;

  @Getter
  @AllArgsConstructor
  public static class Customer {
    private final String name;
    private final String email;
    private final Address address;
  }

  @Getter
  @AllArgsConstructor
  public static class OrderItem {
    private final String sku;
    private final int quantity;
    private final double price;
  }
}