JSON을 Go로 변환
JSON 데이터를 Go 코드로 변환합니다
JSON 입력
Go 출력
JSON을 Go로란?
Go는 구조화된 데이터에 구조체를 사용합니다. encoding/json으로 JSON을 언마샬할 때 적절한 필드와 타입이 있는 구조체가 필요합니다. JSON 사양은 객체, 배열, 문자열, 숫자, 불리언을 정의하지만 Go는 각 중첩 객체에 대한 명시적 구조체 정의가 필요합니다. 크거나 복잡한 JSON의 경우 수동 작성이 번거롭고 오류가 발생하기 쉽습니다.
이 도구는 JSON에서 Go 구조체를 생성합니다. 구성 패널에서 구조체 및 패키지 이름을 설정하세요. camelCase 또는 snake_case 키에 구조체 필드가 올바르게 매핑되도록 json:"field_name"을 위해 JSON 태그를 활성화하세요. 영값과 누락 사이를 구분하기 위해 선택적 또는 nullable 필드에 포인터를 활성화하세요. 출력은 json.Unmarshal()과 함께 사용할 준비가 되어 있습니다.
변환은 완전히 브라우저에서 수행됩니다. JSON은 서버로 전송되지 않습니다. 브라우저의 네트워크 탭을 통해 확인할 수 있습니다.
이 도구 사용 방법
JSON 붙여넣기 또는 업로드
JSON을 복사하여 왼쪽 편집기에 붙여넣습니다. 업로드를 클릭하여 .json 또는 .txt 파일을 로드할 수도 있습니다. 샘플 데이터를 보려면 샘플 버튼을 사용하세요. 구성 패널에서 구조체 이름(예: User)과 패키지 이름(예: models)을 설정하세요. json:"key" 구조체 태그를 위해 JSON 태그를 활성화하세요. 선택적 또는 nullable 필드를 위해 포인터를 활성화하세요.
복사 또는 다운로드
<strong>복사</strong>를 사용하여 결과를 클립보드에 넣거나 <strong>다운로드</strong>를 사용하여 <code>.go</code> 파일로 저장하세요. Go 프로젝트에 붙여넣으세요. 임포트나 패키지 이름을 조정해야 할 수 있습니다.
JSON을 Go로 변환 예시
다음은 JSON 객체에서 Go 구조체를 생성하는 예시입니다.
예시: 구독자 레코드
JSON 입력:
생성된 Go 출력:
JSON을 Go로 변환이 도움이 되는 경우
대부분의 개발자는 API 통합 시 이 기능이 필요합니다. Postman 또는 curl을 통해 요청을 보내면 응답이 JSON으로 옵니다. 여기에 붙여넣으면 encoding/json용 타입이 지정된 구조체가 생성됩니다. 대용량 응답에서 특정 값을 추출하려면 jq가 명령줄에서 유용합니다.
구성 파일은 또 다른 일반적인 사례입니다. 중첩 객체가 있는 <code>config.json</code> 또는 <code>settings.json</code>은 종종 타입 안전 접근을 위한 Go 구조체가 필요합니다. 두 JSON 파일을 병합하려면 먼저 JSON 병합 도구를 사용하세요.
MongoDB, Firestore 또는 CouchDB의 데이터베이스 내보내기는 일반적으로 대용량 JSON 블롭입니다. 여기에서 처리하면 문서 구조를 이해하고 가져오기 스크립트 또는 쿼리를 위한 Go 구조체를 생성하는 데 도움이 됩니다.
자주 묻는 질문
JSON 태그가 필요한 이유?
Go 구조체 필드 이름은 JSON에 내보내려면 대문자로 시작해야 합니다. JSON은 종종 camelCase 또는 snake_case를 사용합니다. 태그 json:"fieldName"은 구조체 필드를 JSON 키에 매핑합니다. 생성된 구조체가 json.Unmarshal 및 json.Marshal과 올바르게 작동하도록 구성에서 JSON 태그를 활성화하세요.
선택적 필드에 포인터?
JSON 필드가 null이거나 누락될 수 있는 경우 영값(예: 빈 문자열)과 누락 사이를 구분하기 위해 *Type을 사용하세요. 포인터 없이는 차이를 알 수 없습니다. 선택적 또는 nullable 필드에 대해 구성에서 포인터 사용을 활성화하세요.
데이터가 어디로 전송됩니까?
아니요. 생성은 완전히 JavaScript를 사용하여 브라우저에서 수행됩니다. 서버로 전송되는 데이터가 없습니다. 브라우저의 네트워크 탭을 통해 확인할 수 있습니다.
omitempty는 어떻게 됩니까?
비어 있을 때 출력에 포함하지 않으려는 필드에 JSON 태그에 omitempty를 추가하세요: json:"name,omitempty". 필요한 경우 출력을 편집하세요. 생성기는 기본적으로 omitempty를 추가하지 않습니다. 이는 사용 사례에 따라 다르기 때문입니다.
동적 JSON에 interface{}?
알 수 없거나 매우 가변적인 구조의 경우 map[string]interface{} 또는 interface{}를 사용하세요. 이 도구는 알려진 형태에 대한 타입이 지정된 구조체를 생성합니다. JSON 구조가 자주 변경된다면 interface{}를 선호할 수 있습니다.
관련 도구
Go JSON 처리: encoding/json. JSON: JSON 사양, RFC 8259. 개요: MDN JSON. API 테스트: Postman. Go 구조체 태그: Go 사양. jq도 참조하세요.