Go 구조체→JSON 샘플 생성기

json 태그가 포함된 Go struct 정의를 붙여넣으면 그에 대응하는 JSON 샘플 데이터를 자동으로 생성합니다. 중첩 struct・슬라이스・omitempty・json:"-"도 지원하여 API 목업이나 Postman 예시 작성에 유용합니다.

사용 팁

  • 여러 struct를 함께 붙여넣으면 중첩된 필드의 타입을 자동으로 해석해 재귀적으로 샘플 객체를 생성합니다(정의를 찾을 수 없으면 빈 객체 {}로 대체하고 경고를 표시합니다).
  • 대상 struct 이름을 지정하면 입력에 여러 struct가 있어도 루트로 사용할 struct를 선택할 수 있습니다(비워두면 처음 등장한 struct가 사용됩니다).
  • json:"-"가 지정된 필드는 JSON 출력에서 제외됩니다. omitempty가 붙은 필드도 키 자체는 평소대로 출력되므로 필요 없다면 직접 삭제해 주세요.
  • 생성되는 값은 어디까지나 타입에 기반한 자리표시자입니다(문자열은 "example", 숫자는 1 등). 실제 API 응답 예시로 사용하려면 실제 데이터로 바꿔 주세요.
  • 이 도구는 자매 도구인 JSON→Go 구조체 변환의 정반대 방향입니다. Go 핸들러에서 정의한 struct로부터 프런트엔드나 QA 팀을 위한 샘플 페이로드를 빠르게 만들 수 있습니다.

자주 묻는 질문

Go로 작성한 API 응답용 struct를 수작업으로 JSON화하면 필드 타입이나 json 태그를 잘못 해석하기 쉽고, 특히 깊게 중첩된 구조에서는 더욱 시간이 걸립니다. 자동 생성하면 프런트엔드 팀이나 QA 팀에게 정확한 샘플 페이로드를 훨씬 빠르게 전달할 수 있습니다.

입력 내용에서 참조된 struct의 정의를 찾을 수 없으면 해당 필드의 값은 빈 객체 {}로 출력되고 화면에 경고 메시지가 표시됩니다. 원본 struct도 함께 붙여넣으면 올바르게 중첩된 샘플이 생성됩니다.

omitempty는 어디까지나 Go 쪽에서 인코딩 시 제로값을 생략하기 위한 지시일 뿐이므로 키 자체는 샘플 JSON에 평소대로 출력됩니다. 반면 json:"-"가 지정된 필드는 인코딩 시 완전히 제외되므로 샘플 JSON에도 포함되지 않습니다.

아니요, 어디까지나 타입을 충족시키기 위한 자리표시자입니다. 문자열은 "example", 정수는 1, 부동소수점 숫자는 1.5, 불리언은 true처럼 고정된 값을 할당하므로 실제 데이터로 사용할 때는 적절히 바꿔 주세요.

아니요, 이 도구는 정규 표현식과 줄 단위 분석에 기반한 간이 파서이며 실제 Go 구문 분석기(AST)는 사용하지 않습니다. 여러 줄에 걸친 타입 선언이나 익명 struct의 중첩 등 복잡한 표기에는 대응하지 않으므로 어디까지나 간단한 초안 생성 도구로 활용해 주세요.
ツールくん

여담 ― JSON→Go 구조체 변환의 정반대라는 발상

Go로 웹 API를 구현할 때 응답 구조는 struct와 json 태그의 조합으로 정의하는 것이 일반적입니다. 하지만 프런트엔드 개발자나 QA 엔지니어가 API의 동작을 확인하고 싶을 때, Go 코드를 읽고 필드 타입을 하나씩 머릿속에서 JSON으로 변환하는 것은 번거롭고 오해도 생기기 쉬운 작업입니다.

이 도구는 자매 도구인「JSON→Go 구조체 변환」의 정반대 방향의 변환을 수행합니다. Go의 struct 정의를 붙여넣기만 하면 json 태그에 따른 키 이름과 타입에 맞는 자리표시 값을 가진 샘플 JSON을 생성하여, Postman의 예시 작성이나 프런트엔드 목업 데이터로 바로 사용할 수 있는 형태로 만들어 줍니다.

다만 이 도구는 실제 Go 컴파일러가 아니라 정규 표현식과 줄 단위 분석에 기반한 간이 파서입니다. 단순한 필드 정의나 입력 내에 함께 붙여넣은 중첩 struct의 해석에는 대응하지만, 익명 struct의 중첩이나 여러 줄에 걸친 타입 선언 등 복잡한 표기는 올바르게 분석되지 않을 수 있습니다. 어디까지나 초안으로 활용하고 최종 사양은 Go 소스 코드와 대조하여 확인해 주세요.

→ 모든 여담 보기