UTILS.
기본부터 지키는 개인정보
🐹

JSON을 Go 구조체로

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

파일은 이 기기에만 남습니다

파일은 브라우저에서 처리되며 업로드되지 않습니다. 사이트는 도구 실행에 필요한 코드와 리소스를 다운로드합니다. 계정이나 추적은 없습니다.

다운로드를 눌러 이 도구를 하나의 HTML 파일로 저장하고 오프라인으로 사용하세요.

개인정보 →
출력

이 도구에 대하여

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이 서버로 전송되나요?
아니요. 파싱과 코드 생성은 전적으로 브라우저에서 이루어지며, 아무것도 업로드되거나 저장되지 않습니다.

더 많은 도구