> 백엔드 개발 > Golang > Go 구조체의 필드에 대해 여러 이름 태그를 어떻게 정의할 수 있나요?

Go 구조체의 필드에 대해 여러 이름 태그를 어떻게 정의할 수 있나요?

Linda Hamilton
풀어 주다: 2024-12-04 14:47:11
원래의
272명이 탐색했습니다.

How Can I Define Multiple Name Tags for Fields in a Go Struct?

Go 구조체의 여러 이름 태그

Go에서 구조체로 작업할 때 여러 이름 태그를 정의하여 다양한 컨텍스트에서 동일한 필드를 나타내는 것이 유용할 수 있습니다. 이는 특정 형식의 데이터가 필요한 타사 라이브러리나 API를 처리할 때 특히 유용합니다.

문제: 구조체에 여러 이름 태그 정의

다음 예를 고려하세요.

type Page struct {
    PageId string                 `bson:"pageId"`
    Meta   map[string]interface{} `bson:"meta"`
}
로그인 후 복사

이 구조체는 MongoDB(bson)에 대한 태그가 지정된 PageId 필드와 함께 Mongo 데이터베이스 문서를 나타내도록 설계되었습니다. MongoDB용으로 태그된 메타 필드도 있습니다. 그러나 이 구조체를 JSON으로 인코딩하면 PageId 필드가 pageId 대신 PageId(대문자)로 렌더링됩니다.

해결책: 공백을 태그 구분 기호로 사용

필드에서는 태그 사이의 구분 기호로 쉼표 대신 공백을 사용합니다. 구조체의 업데이트된 버전은 다음과 같습니다.

type Page struct {
    PageId string                 `bson:"pageId" json:"pageId"`
    Meta   map[string]interface{} `bson:"meta" json:"meta"`
}
로그인 후 복사

이 수정을 통해 PageId 필드는 MongoDB(pageId) 및 JSON(pageId) 모두에 대해 태그가 지정됩니다. 이렇게 하면 MongoDB와 상호 작용하거나 JSON으로 인코딩할 때 필드 이름이 적절하게 지정됩니다.

문서 참조

Go Reflect 패키지 문서는 태그 문자열에 대한 규칙을 지정합니다.

By convention, tag strings are a concatenation of optionally space-separated key:"value" pairs.
로그인 후 복사

위 내용은 Go 구조체의 필드에 대해 여러 이름 태그를 어떻게 정의할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿