MongoDB 데이터베이스의 데이터에 액세스하고 이후에 이를 JSON으로 인코딩할 때 원할 경우 문제가 발생할 수 있습니다. 각 형식에 대해 서로 다른 필드 이름을 사용합니다. 예를 들어 MongoDB에는 "pageId"라는 필드가 필요할 수 있지만 이를 JSON에서 "pageId"로 인코딩하는 것이 좋습니다.
다중 태그 정의: 오해된 노력
구조체에 대해 여러 이름 태그를 정의하려는 초기 시도가 실패했습니다. 태그 문자열 구분 기호로 쉼표를 사용하려고 했습니다.
type Page struct { PageId string `bson:"pageId",json:"pageId"` Meta map[string]interface{} `bson:"meta",json:"pageId"` }
그러나 이 접근 방식은 올바르지 않습니다.
성공으로 가는 길: 공간의 힘을 발휘
구조체에서 여러 이름 태그를 성공적으로 정의하려면 공백을 태그 문자열 구분 기호로 사용해야 합니다. 수행 방법은 다음과 같습니다.
type Page struct { PageId string `bson:"pageId" json:"pageId"` Meta map[string]interface{} `bson:"meta" json:"meta"` }
이유 이해하기
reflect 패키지에 대한 문서에는 태그 문자열이 다음과 같은 비어 있지 않은 문자열로 구성되어야 한다고 명시되어 있습니다. 키-값 쌍. 각 키-값 쌍은 공백으로 구분되며 값은 Go 문자열 리터럴 구문을 사용하여 인용됩니다.
Each value is quoted using U+0022 '"' characters and Go string literal syntax.
이 규칙을 따르면 구조체에 대해 여러 이름 태그를 효과적으로 정의하고 원하는 인코딩을 얻을 수 있습니다. 행동.
위 내용은 Go Structs에서 MongoDB 및 JSON 인코딩에 다른 필드 이름을 어떻게 사용할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!