


Wie kann ich eine dynamische Feldauswahl in Go-JSON-Antworten implementieren?
Dynamische Feldauswahl in JSON-Antworten
In Go ist es möglich, eine API zu erstellen, die JSON-Daten aus einer Struktur zurückgibt. Eine häufige Anforderung besteht darin, dem Aufrufer die Auswahl der spezifischen Felder zu ermöglichen, die zurückgegeben werden sollen. Statisch definierte JSON-Struktur-Tags unterstützen jedoch keine dynamische Feldauswahl.
Felder mit JSON ausblenden
Eine mögliche Lösung ist die Verwendung des json:"-"-Tags um bestimmte Felder während der Kodierung zu überspringen. Dies funktioniert jedoch nur für statisch definierte Felder, die immer ausgeschlossen sind. Es geht nicht auf die Notwendigkeit einer dynamischen Feldauswahl ein.
Dynamische Feldentfernung
Ein flexiblerer Ansatz beinhaltet die Verwendung einer Map[string]Schnittstelle{} anstelle einer Struktur . Dadurch können Sie Felder mithilfe der Löschfunktion auf der Karte dynamisch entfernen. Dieser Ansatz ist besonders nützlich, wenn Sie von vornherein nicht nur die angeforderten Felder abfragen können.
Beispiel:
import ( "encoding/json" "fmt" "net/http" ) type SearchResult struct { Date string IdCompany int Company string IdIndustry interface{} Industry string ... // other fields } type SearchResults struct { NumberResults int `json:"numberResults"` Results []SearchResult `json:"results"` } func main() { http.HandleFunc("/search", func(w http.ResponseWriter, r *http.Request) { // Get requested fields from query parameter fields := r.URL.Query()["fields"] results := SearchResults{ // Populate results... } // Remove unwanted fields from each result for i := range results.Results { for _, field := range fields { delete(results.Results[i], field) } } // Encode and output response err := json.NewEncoder(w).Encode(&results) if err != nil { http.Error(w, "Error encoding response", http.StatusInternalServerError) } }) }
In diesem Beispiel lautet der Parameter „Felder“. Wird verwendet, um Felder dynamisch aus den SearchResult-Strukturen zu entfernen, bevor sie als JSON codiert werden. Dieser Ansatz ermöglicht eine flexible Feldauswahl basierend auf den Präferenzen des Anrufers.
Das obige ist der detaillierte Inhalt vonWie kann ich eine dynamische Feldauswahl in Go-JSON-Antworten implementieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

GO Language Pack Import: Was ist der Unterschied zwischen Unterstrich und ohne Unterstrich?

Wie kann ich kurzfristige Informationsübertragung zwischen Seiten im BeEGO-Framework implementieren?

Wie konvertieren Sie die Liste der MySQL -Abfrageergebnisse in eine benutzerdefinierte Struktur -Slice in Go -Sprache?

Wie kann ich benutzerdefinierte Typ -Einschränkungen für Generika in Go definieren?

Wie schreibe ich Scheinobjekte und Stubs zum Testen in Go?

Wie schreibe ich Dateien in Go Language bequem?

Wie kann ich Tracing -Tools verwenden, um den Ausführungsfluss meiner GO -Anwendungen zu verstehen?
