JSON Go 구조체 변환기
JSON을 json 태그가 달린 Go 구조체 정의로 변환합니다. ID 같은 약어 규칙을 반영한 이름, int와 float64 구분, omitempty, 중첩 또는 인라인 구조체를 지원합니다.
항상 null이거나 비어 있거나 여러 타입이 섞인 필드는 any 타입으로 지정됩니다. 실제 타입을 알게 되면 바꿔 주세요.
JSON 샘플을 encoding/json에서 바로 쓸 수 있는 json 태그가 달린 Go 구조체 정의로 바꿉니다. 키는 표준 약어 규칙을 적용한 공개 Go 이름이 되고(id → ID, avatar_url → AvatarURL), 숫자는 값에 따라 int나 float64가 되며, 가끔 null이 되는 필드는 포인터가 되고, 배열 항목 중 일부에 없는 필드에는 omitempty가 붙습니다. 출력은 필드를 정렬해 보여 주므로 붙여 넣은 뒤 gofmt를 실행하세요.
사용 방법
- 대표적인 JSON 샘플을 붙여 넣습니다. 항목이 여러 개 들어 있는 배열이 가장 좋은 타입을 만듭니다.
- 최상위 구조체의 이름을 정합니다.
- 중첩 객체를 이름 있는 별도 타입으로 만들지, 인라인 익명 구조체로 만들지 선택합니다.
- 코드를 패키지에 복사하고 바꾸고 싶은 이름이나 타입을 수정합니다.
계산식
string → string · 정수 → int(32비트를 넘으면 int64) · 소수 → float64 · true/false → bool · [ … ] → []T · { … } → struct · null 또는 혼합 → any
배열 항목 전체에서 같은 위치의 값을 합칩니다. 어느 항목에서든 숫자가 소수이면 그 필드는 float64가 됩니다. 일부 항목에서 null인 필드는 포인터(*string)가 되고, 모든 항목에서 null이거나 서로 다른 종류의 값을 가진 필드는 any가 됩니다. 각 필드에는 json:"avatar_url" 같은 태그가 붙어 encoding/json이 원래 키로 되돌릴 수 있습니다. 중복된 키와 유한한 안전 정수 범위를 벗어난 숫자는 거부하며, 그 밖의 소수는 JavaScript 정밀도를 따릅니다.
예시
예시 레코드는 타입 세 개를 만듭니다. Root에는 ID int, Name string, Email string, Active bool, Score float64, Tags []string, Address Address, Orders []Order, Manager any가 있습니다. Address에는 문자열 필드 세 개가 있습니다. Order에는 ID string, Total float64(25.5와 12가 float64로 합쳐짐), Items int, 그리고 json:"coupon,omitempty"가 붙은 Coupon string이 있습니다. 쿠폰이 있는 주문이 하나뿐이기 때문입니다.
자주 묻는 질문
내 숫자가 float64가 아니라 int로 나오는 이유는 무엇인가요?
확인한 값이 모두 정수였기 때문입니다. JSON에는 숫자 형식이 하나뿐이고 12.0도 12로 읽히므로, 그 필드에 소수가 들어올 수 있다면 직접 float64로 바꾸세요.
일부 필드가 포인터인 이유는 무엇인가요?
그 필드가 샘플 중 하나 이상에서 null이었기 때문입니다. 포인터를 쓰면 JSON의 null(nil)과 빈 문자열 같은 0 값을 구분할 수 있습니다.
인라인 구조체와 별도 구조체 중 무엇이 좋은가요?
이름 있는 별도 타입은 재사용하고 테스트하고 문서화하기 쉽습니다. 인라인 구조체는 한 번만 쓰는 응답을 선언 하나에 담아 둡니다.
omitempty는 무엇을 하나요?
마샬링할 때 필드가 0 값(빈 문자열, 0, false, nil)이면 encoding/json이 그 필드를 출력에서 뺍니다. 언마샬링에는 영향이 없습니다. 필드가 없는 경우와 0 값이 명시된 경우를 구분하지 못하므로, 구분이 필요하다면 포인터나 사용자 정의 타입을 쓰세요.
출처
최종 업데이트:
이 입력값이 담긴 페이지 주소: https://kakao.mobile/ko/tools/json-to-go-struct-tool/
인용·퍼가기
kakaoCalc. (2026, November 8). JSON Go 구조체 변환기. https://kakao.mobile/ko/tools/json-to-go-struct-tool/
“JSON Go 구조체 변환기.” kakaoCalc, 8 Nov. 2026, kakao.mobile/ko/tools/json-to-go-struct-tool/.