mongo 데이터베이스에서 항목을 가져와야하므로 이와 같은 구조체를 정의했습니다.
type Page struct {
PageId string `bson:"pageId"`
Meta map[string]interface{} `bson:"meta"`
}
이제 JSON으로 인코딩해야하지만 필드를 대문자로 인코딩합니다 (pageId 대신 PageId를 얻음). 또한 JSON에 대한 필드 태그를 정의해야합니다. 나는 이것과 같은 것을 시도했지만 작동하지 않았다 :
type Page struct {
PageId string `bson:"pageId",json:"pageId"`
Meta map[string]interface{} `bson:"meta",json:"pageId"`
}
그렇다면 어떻게 할 수 있습니까? 구조체에서 여러 이름 태그를 정의합니까?
답변
reflect
패키지 문서에 나와 있습니다 .
일반적으로 태그 문자열은 선택적으로 공백으로 구분 된 키 : “값”쌍으로 연결됩니다. 각 키는 공백 (U + 0020 ”), 따옴표 (U + 0022 ‘ “‘) 및 콜론 (U + 003A ‘:’) 이외의 비 제어 문자로 구성된 비어 있지 않은 문자열입니다. U + 0022 ‘ “‘문자 및 Go 문자열 리터럴 구문을 사용합니다.
태그 문자열 구분 기호로 쉼표 대신 공백을 사용해야합니다.
type Page struct {
PageId string `bson:"pageId" json:"pageId"`
Meta map[string]interface{} `bson:"meta" json:"meta"`
}
답변
수락 된 답변 주셔서 감사합니다.
아래는 나와 같은 게으른 사람들을위한 것입니다.
부정확
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:"pageId"`
}