Felder in JSON-Antworten mit dynamischer Auswahl entfernen oder ausblenden
Das Problem betrifft eine API, die eine strukturbasierte JSON-Antwort generiert. Die Herausforderung besteht darin, basierend auf einem Abfrageparameter „Felder“ dynamisch auszuwählen, welche Felder zurückgegeben werden sollen. Leider ist das Entfernen von Feldern aus einer Struktur nicht möglich, und das Ausblenden mit dem Tag json:"omitempty" reicht nicht aus, wenn leere Werte vorhanden sind.
Alternative Lösung: Verwenden einer Karte
Um dieses Problem zu beheben, sollten Sie die Verwendung einer Map[string]interface{} anstelle einer Struktur in Betracht ziehen. Dies ermöglicht die dynamische Auswahl und Entfernung von Feldern:
type SearchResultsMap map[string]interface{} // Populate the map with data searchResultsMap := make(SearchResultsMap) searchResultsMap["Date"] = "2023-03-08" searchResultsMap["Company"] = "Acme Corp" searchResultsMap["Country"] = "USA" // Remove unwanted fields delete(searchResultsMap, "IdCompany") delete(searchResultsMap, "Industry") // Encode and output the response err := json.NewEncoder(c.ResponseWriter).Encode(&searchResultsMap)
Durch die Verwendung einer Karte erhalten Sie die Flexibilität, Felder basierend auf den angegebenen Abfrageparametern selektiv einzuschließen oder auszuschließen. Darüber hinaus können Sie die Karte ganz einfach bearbeiten, um Ihre Anforderungen an die dynamische Feldauswahl zu erfüllen.
Das obige ist der detaillierte Inhalt vonWie kann ich JSON-Felder in Go dynamisch auswählen und entfernen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!