JSON 입력

Go 출력

JSON을 Go로란?

Postman에서 REST API를 호출했더니 JSON 응답이 왔고, 이걸 Go에서 언마샬해야 하는데 — 깊이 중첩된 응답의 struct를 수동으로 작성하는 건 정말 귀찮습니다. JSON과 Go의 encoding/json 패키지는 잘 동작하지만, Go는 각 중첩 객체마다 명시적인 struct 정의가 필요합니다. 필드를 빠뜨리거나 타입을 잘못 쓰면 언마샬이 조용히 zero value를 반환합니다. 이 도구는 JSON에서 전체 struct 트리를 생성해서 바로 프로젝트에 붙여넣을 수 있게 해줍니다.

이 도구는 JSON에서 Go 구조체를 생성합니다. 구성 패널에서 구조체 및 패키지 이름을 설정하세요. camelCase 또는 snake_case 키에 구조체 필드가 올바르게 매핑되도록 json:"field_name"을 위해 JSON 태그를 활성화하세요. 영값과 누락 사이를 구분하기 위해 선택적 또는 nullable 필드에 포인터를 활성화하세요. 출력은 json.Unmarshal()과 함께 사용할 준비가 되어 있습니다.

변환은 완전히 브라우저에서 수행됩니다. JSON은 서버로 전송되지 않습니다. 브라우저의 네트워크 탭을 통해 확인할 수 있습니다.

이 도구 사용 방법

1

JSON 붙여넣기 또는 업로드

JSON을 복사하여 왼쪽 편집기에 붙여넣습니다. 업로드를 클릭하여 .json 또는 .txt 파일을 로드할 수도 있습니다. 샘플 데이터를 보려면 샘플 버튼을 사용하세요. 구성 패널에서 구조체 이름(예: User)과 패키지 이름(예: models)을 설정하세요. json:"key" 구조체 태그를 위해 JSON 태그를 활성화하세요. 선택적 또는 nullable 필드를 위해 포인터를 활성화하세요.

2

생성된 구조체 확인

오른쪽 패널에 생성된 Go 구조체가 표시됩니다. 중첩 객체는 중첩 또는 별도의 구조체가 됩니다. 배열은 []Type이 됩니다. JSON 태그는 구조체 필드를 JSON 키에 매핑합니다. JSON을 파싱하려면 json.Unmarshal(data, &v)를 사용하세요. 잘못된 JSON 구문의 경우 먼저 JSON 포매터 또는 JSON 검증기를 사용하세요.

3

복사 또는 다운로드

복사를 사용하여 결과를 클립보드에 넣거나 다운로드를 사용하여 .go 파일로 저장하세요. Go 프로젝트에 붙여넣으세요. 임포트나 패키지 이름을 조정해야 할 수 있습니다.

JSON을 Go로 변환 예시

다음은 JSON 객체에서 Go 구조체를 생성하는 예시입니다.

예시: 구독자 레코드

JSON 입력:

입력

생성된 Go 출력:

출력

JSON을 Go로 변환이 도움이 되는 경우

대부분의 개발자는 API 통합 시 이 기능이 필요합니다. Postman 또는 curl을 통해 요청을 보내면 응답이 JSON으로 옵니다. 여기에 붙여넣으면 encoding/json용 타입이 지정된 구조체가 생성됩니다. 대용량 응답에서 특정 값을 추출하려면 jq가 명령줄에서 유용합니다.

구성 파일은 또 다른 일반적인 사례입니다. 중첩 객체가 있는 config.json 또는 settings.json은 종종 타입 안전 접근을 위한 Go 구조체가 필요합니다. 두 JSON 파일을 병합하려면 먼저 JSON 병합 도구를 사용하세요.

MongoDB, Firestore 또는 CouchDB의 데이터베이스 내보내기는 일반적으로 대용량 JSON 블롭입니다. 여기에서 처리하면 문서 구조를 이해하고 가져오기 스크립트 또는 쿼리를 위한 Go 구조체를 생성하는 데 도움이 됩니다.

자주 묻는 질문

JSON에서 Go struct를 자동으로 생성하는 방법은?

이 도구에 JSON을 붙여넣으면 즉시 Go struct가 생성됩니다. JSON Tags를 활성화하면 필드 이름이 JSON 키에 정확히 매핑됩니다. 결과를 Go 프로젝트에 복사하세요 — json.Unmarshal()로 바로 사용할 수 있습니다.

Go struct에 JSON 태그가 필요한 이유는?

Go struct 필드 이름은 JSON에 export하려면 대문자로 시작해야 합니다. JSON은 보통 camelCase나 snake_case를 씁니다. json:"fieldName" 태그가 encoding/json에게 어떤 JSON 키가 어떤 필드에 해당하는지 알려줍니다. 태그가 없으면 json.Unmarshal이 대소문자 구분 없이 매칭해서 필드를 조용히 놓칠 수 있습니다.

데이터가 어디로 전송되나요?

아니요. 모든 처리가 브라우저에서 이루어집니다 — JSON이 내 기기를 절대 떠나지 않습니다. 브라우저 네트워크 탭으로 확인할 수 있습니다. 프로덕션 데이터도 안전합니다.

omitempty는 어떻게 쓰나요?

값이 비어 있을 때 출력에 포함하지 않으려는 필드에 omitempty를 추가하세요: json:"name,omitempty". 생성기는 기본적으로 추가하지 않습니다 — 사용 사례에 따라 다르므로 생성 후 출력을 직접 편집하세요.

struct 필드에 포인터는 언제 써야 하나요?

선택적이거나 nullable 필드에 *Type을 사용하세요. 포인터를 쓰면 JSON 필드가 없을 때 nil이 반환되어 확인할 수 있습니다. 포인터가 없으면 zero value가 반환되어 필드가 없었는지 빈 값인지 알 수 없습니다.

관련 도구

Go JSON 처리: encoding/json. JSON: JSON 사양, RFC 8259. 개요: MDN JSON. API 테스트: Postman. Go 구조체 태그: Go 사양. jq도 참조하세요.