Décodage de tableaux JSON avec des types de valeurs mixtes
Dans certains cas, vous pouvez rencontrer des tableaux JSON contenant des éléments de types différents. Par exemple :
{["NewYork",123]}
Les tableaux Go nécessitent que vous spécifiiez explicitement leur type, ce qui peut devenir difficile lorsqu'il s'agit de tableaux de types mixtes.
Solution utilisant l'interface{}
Pour gérer des tableaux de types mixtes, vous pouvez exploiter le type interface{}, qui autorise des valeurs de tout type. Voici comment y parvenir dans Go :
package main import ( "encoding/json" "fmt" ) type UntypedJson map[string][]interface{} func main() { j := `{"NYC": ["NewYork",123]}` ut := UntypedJson{} err := json.Unmarshal([]byte(j), &ut) if err != nil { fmt.Println(err) return } fmt.Printf("%#v", ut) }
Remarque : Il convient de noter que l'exemple JSON fourni est techniquement invalide, car les objets JSON doivent avoir des clés. Un exemple corrigé serait :
{"NYC": ["NewYork",123]}
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!