簡體   English   中英

如何在結構中定義多個名稱標簽

[英]How to define multiple name tags in a struct

我需要從 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"`
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM