JSON to Go 구조체 변환기
샘플 JSON 페이로드를 붙여넣으면 그에 맞는 Go 타입 정의가 즉시 만들어집니다 — 변환은 입력하는 즉시 실시간으로, 전부 브라우저 안에서 실행됩니다. 객체 키는 encoding/json이 마셜링할 수 있도록 내보내기(exported)되는 PascalCase 필드명으로 바뀌고, 각 필드에는 원래 키를 담은 json:"…" 태그가 붙어 표준 라이브러리로 왕복해도 처음의 JSON이 그대로 재현됩니다. 정수는 int64, 소수는 float64로 매핑되고, 중첩 객체는 페이로드 형태를 그대로 반영하는 인라인 익명 구조체가 됩니다. 타입이 단 하나의 샘플에서 추론되므로 출력은 잘 다듬어진 초안으로 다루세요. 샘플에서 우연히 42였던 필드는 API가 41.5도 반환할 수 있어도 int64가 되고, null과 빈 배열은 요소 타입 정보가 없어 interface{}가 되며, 슬라이스 타입은 첫 번째 요소만 보고 정해집니다. 결과를 검토해 더 잘 아는 부분은 타입을 조이고, 선택적 필드에는 ,omitempty나 포인터 타입을 직접 추가하세요. 입력은 기기를 떠나지 않으며, 새로고침해도 남도록 localStorage에 보관됩니다.
사용법
- 입력 상자에 JSON 샘플을 붙여넣거나 입력하세요 — 변환은 실시간이라 누를 버튼이 없습니다.
- 원하면 루트 구조체 이름을 정하세요(기본값 AutoGenerated). 이름은 내보내기되는 PascalCase 식별자로 정규화됩니다.
- 복사 버튼으로 생성된 정의를 복사해 Go 파일에 붙여넣으세요.
- 추론된 타입을 검토하세요. 소수가 될 수 있는 숫자는 넓히고, interface{} 자리는 실제 타입으로 바꾸고, 선택적 필드에는 ,omitempty를 추가하세요.
자주 묻는 질문
- 숫자는 어떤 타입이 되나요?
- 정수는 int64, 소수부가 있으면 float64가 됩니다. 샘플 하나에서 나온 추론이므로 소수가 될 수 있는 필드라면 직접 float64로 바꾸고, 정확한 소수 처리가 필요하면 json.Number 사용을 고려하세요.
- null이나 빈 배열은 어떻게 처리되나요?
- null은 interface{}, 빈 배열은 []interface{}로 매핑됩니다. 샘플에 타입 정보가 전혀 없기 때문입니다. 실제 타입을 알게 되면 교체하세요 — null이 될 수 있는 필드는 Go에서 포인터로 표현하는 편이 대개 낫습니다.
- 필드명과 json 태그는 어떻게 정해지나요?
- 키를 영숫자가 아닌 문자 기준으로 쪼갠 뒤 PascalCase로 합쳐 내보내기되는 식별자로 만듭니다(user_id → UserId). encoding/json은 내보내진 필드만 볼 수 있기 때문입니다. 원래 키는 json 태그에 그대로 보존되어 마셜링 시 입력 키가 정확히 재현됩니다.
- 중첩 객체는 별도의 이름 있는 타입으로 만들어지나요?
- 아니요 — 인라인 익명 구조체로 출력되어, 어디든 붙여넣을 수 있는 자기완결적 선언 하나로 유지됩니다. 같은 형태가 여러 곳에서 반복되면 직접 이름 있는 타입으로 추출하세요. 또한 배열 요소 타입은 첫 요소만 보고 추론하므로 타입이 섞인 배열은 잡아내지 못합니다.
- 제 JSON이 전송되거나 저장되나요?
- 브라우저를 떠나지 않습니다 — 파싱과 생성 모두 순수 클라이언트 사이드 자바스크립트입니다. 편의를 위해 입력과 루트 이름이 브라우저 localStorage에 저장되어 새로고침 후에도 남으니, 공용 기기에서 민감한 내용을 붙여넣었다면 입력을 지워 두세요.
관련 도구
JSON to Rust 구조체 변환기 (serde)
JSON 객체를 serde 파생과 타입 매핑 필드가 포함된 Rust 구조체로 브라우저에서 변환합니다.
Open Graph · Twitter Card 생성기
폼 입력 → 즉시 붙여넣기 가능한 `<meta>` 블록. Facebook·LinkedIn·Slack용 OG와 X·Discord용 Twitter Card 태그.
JSON to Python 데이터클래스 변환기
JSON 객체를 타입 힌트가 포함된 Python @dataclass 정의로 브라우저에서 변환합니다.
JSON to Kotlin 데이터 클래스 변환기
JSON 객체를 타입이 지정된 프로퍼티가 포함된 Kotlin 데이터 클래스로 브라우저에서 변환합니다.
JSON to C# 클래스 변환기
JSON 객체를 자동 프로퍼티 타입 매핑이 적용된 C# 클래스로 브라우저에서 변환합니다.
JSON to Java 클래스(POJO) 변환기
JSON 객체를 타입이 매핑된 필드가 포함된 Java POJO 클래스로 브라우저에서 변환합니다.