Maison > Article > développement back-end > Comment puis-je gérer les types de champs JSON dynamiques dans Go ?
Gérer les types de champs JSON dynamiques dans Go
La désérialisation de JSON en données structurées dans Go peut s'avérer difficile lorsque le type de valeur d'une clé ne cesse de changer . Par exemple, une API peut fournir des données dans différents formats, tels que :
{ "mykey": [ {obj1}, {obj2} ] }
{ "mykey": [ "/obj1/is/at/this/path", "/obj2/is/at/this/other/path" ] }
Approche de Go
Pour gérer un tel JSON dynamique, envisagez d'utiliser un structure de données flexible comme la suivante :
type Data struct { MyKey []interface{} `json:"mykey"` }
Cette structure permet de stocker à la fois des chaînes et des objets dans MyKey slice.
Distinguer les types
Une fois le JSON désérialisé, vous pouvez différencier les chaînes et les objets à l'aide d'un commutateur de type :
for i, v := range data.MyKey { switch x := v.(type) { case string: fmt.Println("Got a string: ", x) case map[string]interface{}: fmt.Printf("Got an object: %#v\n", x) } }
Ceci Cette approche vous permet de déterminer le type de chaque élément de la tranche MyKey et de le traiter en conséquence.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!