본문으로 건너뛰기
AZ Tools

JSON to Java 클래스(POJO) 변환기

JSON 객체를 타입이 매핑된 필드가 포함된 Java POJO 클래스로 브라우저에서 변환합니다.

Java 클래스

사용법

  1. 입력 상자에 JSON을 붙여넣거나 입력합니다.
  2. 필요하면 루트 클래스 이름을 변경합니다(기본값 AutoGenerated).
  3. 출력 상자에서 생성된 클래스를 복사합니다.
  4. 생성된 클래스는 접근자 대신 public 필드를 노출합니다. 프레임워크가 자바빈 메서드를 기대한다면 게터를 추가하거나 롬복 애너테이션을 붙이세요.

자세한 설명

펼치기

JSON 객체나 배열을 붙여넣으면 타입이 지정된 필드를 가진 Java 클래스 정의(POJO)와, 값을 담고 있던 키의 이름을 딴 중첩 객체용 별도 클래스를 바로 얻을 수 있습니다. 숫자는 표본 값에 따라 매핑됩니다. 정수는 long, 소수는 double이 되는데 둘 다 기본형이므로, null이 올 수 있는 필드에는 박싱된 Long이나 Double을 대신 써야 합니다. JSON null은 Object로 처리됩니다. 표본 하나로는 의도한 타입을 알 수 없기 때문입니다. 빈 배열은 List<Object>가 됩니다. 비어 있지 않은 배열은 첫 원소로 타입을 정하는데, 동종 JSON에서는 통상적인 가정이지만 혼합 데이터라면 확인해 보는 편이 좋습니다. 모든 처리는 브라우저에서 이루어지며 JSON은 업로드되지 않습니다.

자주 묻는 질문

숫자는 어떤 타입이 되나요?

정수는 long, 소수점이 있는 숫자는 double로 변환됩니다. 더 좁은 타입을 원하면 int나 float로 직접 변경하세요.

null이나 빈 배열은 어떻게 처리되나요?

샘플로 타입을 추론할 수 없으므로 null은 Object로, 빈 배열은 List<Object>로 변환됩니다.

중첩 객체는 어떻게 처리되나요?

각 중첩 객체는 자체 class가 됩니다. 리스트 필드가 생성되면 java.util.List import가 추가됩니다.

제 JSON이 어딘가로 전송되나요?

아니요. 변환은 전적으로 브라우저에서 이루어지며 아무것도 업로드되지 않습니다.

왜 int와 float이 아니라 long과 double인가요?

표본만으로는 값이 얼마나 커질지 알 수 없기 때문입니다. 오늘은 int에 들어가는 ID도 20억을 넘는 순간 넘쳐 버리고, float은 평범한 금액에서도 정밀도를 잃습니다. 넓은 타입이 안전한 기본값이며, 범위를 알고 있다면 좁히세요.

어떤 필드가 가끔 null입니다. 무엇을 바꿔야 하나요?

기본형을 박싱된 형태로 바꾸세요. long은 Long, double은 Double, boolean은 Boolean이 됩니다. 기본형은 null을 담을 수 없으므로 그대로 두면 JSON의 null이 0이나 false로 역직렬화되어 값이 없었다는 사실을 감춰 버립니다.

관련 도구