JSON을 Go로 변환

JSON 입력

에디터 로드 중…

생성된 Go

Configuration

Go 구조체를 생성하려면 JSON 데이터를 입력하세요

적절한 필드 이름과 JSON 태그를 가진 구조체

JSON을 Go로 변환하는 방법 – 단계별 가이드

이 JSON to Go 생성기를 사용하여 API 및 서비스용 JSON 샘플의 JSON 태그가 포함된 Go 구조체를 생성하세요.

  1. 1단계 - JSON 샘플 붙여넣기

    • 대표 JSON 개체 또는 배열을 왼쪽 편집기에 붙여넣습니다.
    • 유형이 올바르게 유추되도록 중첩된 개체, 배열 및 null 허용 필드를 포함합니다.
    • Import을 사용하여 파일, URL 또는 샘플 데이터에서 JSON을 로드합니다.
  2. 2단계 - Go 구조체 옵션 선택

    • 루트 Struct Name(예: Root)을 설정합니다.
    • 선택적 필드(*string, omitempty 또는 사용자 정의 유형)를 처리하는 방법을 결정합니다.
    • 키가 올바르게 매핑되도록 JSON 태그와 이름 지정을 확인합니다(예: json:"createdAt").
  3. 3단계 – 생성된 코드 검토

    • 필드 이름, 유형, 배열/객체 모델링 방법을 확인하세요.
    • 가능한 경우 Root Type Name, null 처리 및 프레임워크와 같은 옵션을 조정합니다.
    • 필드가 잘못 추론된 경우 샘플 JSON을 조정하고 다시 생성하세요.
  4. 4단계 - Go에서 구조체 사용

    • 구조체를 패키지에 붙여넣고 gofmt을 실행합니다.
    • encoding/json을 사용하여 루트 유형으로 역정렬화합니다.
    • API 경계에 유효성 검사(예: 필수 필드)를 추가합니다.
  5. 5단계 - 복사 또는 다운로드

    • 출력을 프로젝트에 복사하거나 파일로 다운로드합니다.
    • 코드 스타일에 맞게 포맷터/린터를 실행하세요.
    • 언어에 필요한 경우 JSON 구문 분석/직렬화 라이브러리를 추가하세요.

빠른 팁

  • 누락된 필드와 비어 있는 필드를 구별해야 하는 경우 null 허용 필드에 대한 포인터를 사용하세요.
  • 타임스탬프 형식을 제어하는 경우에만 time.Time을 선호하세요.
  • 필요한 경우 DTO 구조체를 내부 도메인 모델과 별도로 유지하세요.
출력 예(단순화)
// JSON 입력
{
  "id": 123,
  "name": "Maeve Winters",
  "email": "[email protected]",
  "active": true,
  "roles": ["admin", "editor"],
  "metadata": { "plan": "pro" },
  "createdAt": "2024-03-01T10:15:00Z",
  "score": 99.5,
  "notes": null
}

// Generated Go structs (simplified)
type Metadata struct {
  Plan string `json:"plan"`
}

type Root struct {
  ID        int       `json:"id"`
  Name      string    `json:"name"`
  Email     *string   `json:"email"`
  Active    bool      `json:"active"`
  Roles     []string  `json:"roles"`
  Metadata  Metadata  `json:"metadata"`
  CreatedAt string    `json:"createdAt"`
  Score     float64   `json:"score"`
  Notes     any       `json:"notes"`
}

관련 JSON & Go 도구

이 JSON to Go 생성기와 함께 효과적으로 작동하는 더 많은 JSON 및 스키마 도구를 살펴보세요.

자주 묻는 질문

어떤 Go 기능을 지원하나요?

생성기는 적절한 필드 이름, marshaling/unmarshaling을 위한 JSON 태그, Go 네이밍 규칙을 따르는 적절한 Go 데이터 타입을 가진 Go 구조체를 생성합니다.

JSON 태그는 어떻게 처리되나요?

생성기는 올바른 직렬화를 위해 구조체 필드에 JSON 태그를 자동으로 추가합니다. 필요하다면 다중 형식 지원을 위해 YAML 또는 XML 태그도 활성화할 수 있습니다.

패키지 이름을 커스터마이즈할 수 있나요?

네! 옵션에서 어떤 패키지 이름이든 지정할 수 있습니다. 기본값은 'main'이지만 'models', 'types' 등 원하는 패키지 이름을 사용할 수 있습니다.

Go 네이밍 규칙은 어떻게 처리되나요?

생성기는 JSON 필드 이름을 적절한 Go 필드 이름(내보낸 필드는 PascalCase)으로 자동 변환하면서, JSON 태그에는 원래 이름을 유지합니다.

JSON을 Go로 변환 | JSONSwiss