JSON에서 TypeScript와 Python 유형을 생성하는 방법
JSON 텍스트를 넣으면 TypeScript 인터페이스나 Python 데이터클래스 형태의 소스 코드를 생성할 수 있습니다. 별도 언어를 지정하지 않을 때의 기본 출력은 TypeScript입니다.
JSON을 코드 구조로 옮길 때 알아둘 점
JSON에 담긴 구조를 TypeScript나 Python에서 다룰 형태로 옮기려면 먼저 입력 데이터의 모양을 코드 선언으로 바꾸는 작업이 필요합니다. 이 도구는 제공한 JSON 텍스트를 바탕으로 소스 코드를 생성하며, TypeScript에서는 객체를 인터페이스 선언으로 나타내고 Python에서는 데이터클래스 선언으로 표현합니다. API 응답 예시, 설정 데이터, 중첩된 사용자 정보처럼 객체 안에 여러 단계가 있는 자료를 살펴볼 때 활용할 수 있습니다.
기본 출력 언어는 TypeScript입니다. Python이 필요한 경우 언어를 바꾸어 생성할 수 있으므로, 결과를 사용할 프로젝트의 언어를 먼저 정하면 확인 과정이 간단해집니다. 최상위 이름을 따로 정하지 않을 때 적용되는 이름은 Root이며, 코드의 의미를 더 잘 드러내고 싶다면 호출자에게 맞는 이름을 지정할 수 있습니다. 다만 결과는 입력한 JSON에서 읽을 수 있는 구조를 바탕으로 만들어지므로, 실제 데이터가 예시와 다를 수 있는 부분은 생성 후에 따로 살펴봐야 합니다.
입력부터 코드 확인까지의 순서
-
코드로 옮길 JSON 텍스트를 준비합니다. 객체, 배열, 문자열, 불리언, 숫자 같은 JSON 구성 요소를 사용하되, JSON으로 해석될 수 있는 문법인지 먼저 확인합니다. 설명 문장이나 코드 주석을 JSON 본문에 섞으면 입력으로 처리되지 않을 수 있으므로 데이터 부분만 남기는 편이 좋습니다.
-
준비한 내용을 입력 영역에 붙여 넣습니다. 아무 내용도 넣지 않거나 공백만 입력하면 생성이 진행되지 않으므로, 변환할 JSON을 실제로 입력해야 합니다. 여러 줄로 작성한 JSON도 구조와 구두점이 올바르면 같은 입력으로 다룰 수 있습니다.
-
출력 언어를 지정합니다. TypeScript를 고르면 JSON 객체에 맞춘 인터페이스 선언이 만들어지고, Python을 고르면 해당 객체를 바탕으로 데이터클래스 선언이 만들어집니다. 언어를 별도로 바꾸지 않은 상태에서는 TypeScript가 기본으로 적용됩니다.
-
필요하다면 최상위 타입 이름을 입력합니다. 예를 들어 응답 자료의 성격을 드러내는 이름을 제공할 수 있으며, 이 값을 생략하면 Root가 사용됩니다. 이름을 지정할 때에는 나중에 코드를 읽는 사람이 최상위 구조를 구분하기 쉬운 표현을 고르는 것이 좋습니다.
-
생성을 실행한 뒤 출력된 선언과 입력 구조를 나란히 확인합니다. 문자열은 TypeScript의 string 또는 Python의 str로, 불리언은 boolean 또는 bool로, 숫자는 TypeScript의 number 또는 Python의 float로 나타납니다. 객체 안에 또 다른 객체가 있으면 그 부분을 위한 중첩 타입이 만들어지고, 바깥 객체의 해당 필드는 그 타입을 참조합니다.
-
결과를 프로젝트에 옮기기 전에 필드 이름, 중첩 단계, 예상하지 못한 입력 변형을 검토합니다. 하나의 예시 JSON만으로는 실제 데이터에서 빠질 수 있는 필드나 다른 형태로 들어올 수 있는 값까지 판단하기 어려우므로, 사용 중인 데이터 계약과 대조하는 절차를 추가하는 것이 안전합니다.
출력 구조와 검토 범위 이해하기
출력은 JSON의 값에서 파악한 기본 자료형과 객체 계층을 반영합니다. 예를 들어 문자열 값은 선택한 언어에 맞는 문자열 자료형으로 바뀌고, 불리언 값은 해당 언어의 불리언 자료형으로 표시됩니다. 숫자 값은 TypeScript에서 number로, Python에서 float로 나타나므로, 실제 애플리케이션에서 숫자를 어떻게 사용할지 결과를 확인해야 합니다.
중첩 객체가 있다면 평평한 필드 목록 하나로 끝나지 않고 안쪽 구조를 표현하는 타입이 별도로 나타납니다. 바깥쪽 필드가 그 중첩 타입을 가리키는지 확인하면 JSON의 계층이 코드에 어떻게 반영되었는지 파악할 수 있습니다. 최상위 이름을 지정했다면 출력의 시작 부분에서 그 이름이 적용되었는지 살펴보고, 지정하지 않았다면 Root라는 기본 이름이 사용되었는지 확인합니다.
생성되지 않은 경우에는 원인을 결과 내용만으로 추측하기보다 입력 상태와 언어 설정을 차례로 점검하세요. 빈 문자열이나 공백만 있는 값은 처리되지 않으며, JSON 문법이 잘못된 입력도 코드로 변환되지 않습니다. TypeScript와 Python 이외의 언어를 지정하면 지원되지 않는 언어로 처리되므로 두 선택지 중 하나인지 확인해야 합니다.
이 도구가 만드는 선언은 제출한 JSON에 근거한 출발점으로 활용할 수 있습니다. 실제 서비스에서 필드가 생략될 수 있는지, 값이 여러 자료형으로 들어오는지, 배열의 내용이 어떤 규칙을 따르는지는 입력 예시만으로 확정하기 어렵습니다. 따라서 생성된 결과를 그대로 모든 데이터에 적용한다고 가정하지 말고, 사용하려는 데이터의 범위와 코드베이스의 규칙에 맞게 사람이 검토하세요.
사용 예시
API 응답의 사용자 이름과 활성 상태를 TypeScript 코드에서 다룰 구조로 옮기려는 상황입니다.
사용자 이름과 활성 상태가 들어 있는 API 응답 JSON을 입력하고 TypeScript를 선택한 뒤 최상위 이름으로 ApiResponse를 제공하여 생성을 실행합니다.
TypeScript와 ApiResponse를 지정하면 최상위 선언에 ApiResponse가 사용되고, 안쪽 객체를 위한 별도 인터페이스가 함께 나타나는 형태를 예상할 수 있습니다. name 필드는 string, active 필드는 boolean에 해당하는 표현으로 표시됩니다.
제한 사항
- 내용이 없는 입력, 공백만 있는 입력, 문법이 잘못된 JSON, 지원 목록 밖의 언어에서는 코드가 생성되지 않습니다. 한 가지 JSON 예시만으로 실제 데이터의 모든 변형을 판단할 수도 없습니다.
자주 발생하는 오류
- 쉼표, 따옴표, 대괄호 또는 중괄호를 빠뜨린 채 JSON을 붙여 넣으면 문법을 해석하지 못해 생성되지 않을 수 있습니다. 입력을 JSON 파서에서 읽을 수 있는 형태로 정리하고, 값의 따옴표와 괄호가 짝을 이루는지 확인한 다음 다시 실행하세요.
자주 묻는 질문
Python 코드도 생성할 수 있나요?
Python을 선택하면 JSON 객체를 바탕으로 Python 데이터클래스 선언이 생성됩니다. TypeScript를 선택한 경우에는 객체 구조가 인터페이스 선언으로 나타납니다.
생성되는 최상위 타입 이름을 바꿀 수 있나요?
최상위 이름을 직접 제공하면 그 이름을 사용할 수 있습니다. 이름을 입력하지 않은 경우에는 기본값인 Root가 적용됩니다.
코드가 생성되지 않을 때 무엇을 확인해야 하나요?
먼저 입력이 비어 있거나 공백뿐인지 살펴보세요. 내용이 있다면 JSON 구문이 올바른지 확인하고, 선택한 언어가 TypeScript 또는 Python인지 점검해야 합니다.