Wenn Sie auf Daten aus einer MongoDB-Datenbank zugreifen und diese anschließend in JSON kodieren, können Sie auf Wunsch auf eine Herausforderung stoßen um für jedes Format unterschiedliche Feldnamen zu verwenden. Während MongoDB beispielsweise ein Feld mit dem Namen „pageId“ erfordert, möchten Sie es möglicherweise lieber als „pageId“ in JSON kodieren.
Mehrere Tag-Definition: Ein missverstandenes Unterfangen
Ihr erster Versuch, mehrere Namens-Tags für eine Struktur zu definieren, schlug fehl. Sie haben versucht, Kommas als Trennzeichen für Tag-Zeichenfolgen zu verwenden:
type Page struct { PageId string `bson:"pageId",json:"pageId"` Meta map[string]interface{} `bson:"meta",json:"pageId"` }
Dieser Ansatz ist jedoch falsch.
Der Weg zum Erfolg: Die Kraft des Weltraums entfesseln
Um mehrere Namens-Tags in einer Struktur erfolgreich zu definieren, müssen Sie Leerzeichen als Tag-String-Trennzeichen verwenden. So sollte es gemacht werden:
type Page struct { PageId string `bson:"pageId" json:"pageId"` Meta map[string]interface{} `bson:"meta" json:"meta"` }
Die Begründung verstehen
In der Dokumentation für das Reflect-Paket heißt es eindeutig, dass Tag-Strings aus nicht leeren Strings mit bestehen sollten Schlüssel-Wert-Paare. Jedes Schlüssel-Wert-Paar wird durch ein Leerzeichen getrennt und Werte werden mithilfe der Go-String-Literal-Syntax in Anführungszeichen gesetzt.
Each value is quoted using U+0022 '"' characters and Go string literal syntax.
Durch Befolgen dieser Konvention können Sie effektiv mehrere Namens-Tags für Ihre Struktur definieren und die gewünschte Codierung erreichen Verhalten.
Das obige ist der detaillierte Inhalt vonWie kann ich unterschiedliche Feldnamen für die MongoDB- und JSON-Codierung in Go-Strukturen verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!