動的選択による JSON 応答のフィールドの削除または非表示
この問題には、構造体ベースの JSON 応答を生成する API が関係しています。課題は、「フィールド」クエリ パラメーターに基づいて返すフィールドを動的に選択することです。残念ながら、構造体からフィールドを削除することは現実的ではありません。空の値が存在する場合、json:"omitempty" タグを使用してフィールドを非表示にするだけでは十分ではありません。
代替解決策: マップを使用する
これに対処するには、構造体の代わりに map[string]interface{} を使用することを検討してください。これにより、動的なフィールドの選択と削除が可能になります。
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)
マップを使用すると、指定されたクエリ パラメーターに基づいてフィールドを選択的に含めたり除外したりする柔軟性が得られます。さらに、動的フィールド選択要件を満たすためにマップを簡単に操作できます。
以上がGo で JSON フィールドを動的に選択して削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。