UTILS.
100% 브라우저 내 실행
🐹

JSON을 Go 구조체로

JSON 샘플을 json 태그가 붙은 타입 지정 Go 구조체로 변환합니다. 브라우저에서 int64, float64, bool, 중첩 구조체, 슬라이스를 추론합니다.

출력

이 도구에 대하여

JSON 샘플을 붙여넣으면 이 도구가 모든 키에 대한 `json:"field"` 태그와 함께 바로 사용할 수 있는 Go 구조체를 생성합니다. 모든 것이 브라우저에서 로컬로 실행되므로, 여러분의 JSON은 어디에도 업로드되지 않습니다.

생성기는 JSON.parse를 호출하고 결과를 재귀적으로 순회합니다: 문자열은 string이 되고, 불리언은 bool이 되고, 정수는 int64가 되고, 소수점이 있는 숫자는 float64가 되고, null은 interface{}가 되고, 배열은 첫 요소 타입의 슬라이스가 되며(비어 있으면 []interface{}), 각 객체는 자기 이름을 가진 중첩 구조체가 됩니다. 필드 이름은 내보내기용 PascalCase로 변환되고(ID, URL 같은 흔한 이니셜리즘은 대문자로), 원래 키는 json 태그에 보존됩니다.

API 응답이나 설정 파일에서 Go 모델을 부트스트랩한 다음, 필요한 곳에서 타입을 직접 정리하는 데 사용하세요. JSON에는 별도의 정수 타입이 없으므로 1.0 같은 값은 정수로 읽힙니다; float64를 원하면 소수점(1.5)을 추가하세요.

자주 묻는 질문

숫자는 어떻게 타입이 정해지나요?
소수 부분이 없는 파싱된 값은 int64가 되고, 소수점이 있는 값은 float64가 됩니다. JSON은 1과 1.0을 구분할 수 없으므로 둘 다 int64로 읽힙니다.
중첩 객체와 배열은 어떻게 처리되나요?
각 객체는 별도의 이름 있는 구조체가 되고, 배열은 첫 요소 타입의 슬라이스가 되며, 배열이 비어 있거나 요소가 null이면 []interface{}가 됩니다.
필드 이름은 유효한 Go인가요?
키는 내보내기용 PascalCase로 변환되고 원래 키는 json 태그에 유지되므로, user_id나 first-name 같은 이름에서도 JSON이 올바르게 왕복 변환됩니다.
제 JSON이 서버로 전송되나요?
아니요. 파싱과 코드 생성은 전적으로 브라우저에서 이루어지며, 아무것도 업로드되거나 저장되지 않습니다.

더 많은 도구