Heim > Backend-Entwicklung > Golang > Wie kann ich unterschiedliche Feldnamen für die MongoDB- und JSON-Codierung in Go-Strukturen verwenden?

Wie kann ich unterschiedliche Feldnamen für die MongoDB- und JSON-Codierung in Go-Strukturen verwenden?

DDD
Freigeben: 2024-12-03 01:06:10
Original
828 Leute haben es durchsucht

How Can I Use Different Field Names for MongoDB and JSON Encoding in Go Structs?

Überwindung von Einschränkungen beim Struktur-Tagging für MongoDB und JSON-Kodierung

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"`
}
Nach dem Login kopieren

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"`
}
Nach dem Login kopieren

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.
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage