Ce scénario se produit lorsque la réponse JSON contient des champs avec des noms inconnus ou dynamiques. Pour résoudre ce problème, nous pouvons utiliser une combinaison d'une carte et d'une structure pour capturer les données.
Code modifié :
package main import "fmt" import "encoding/json" var body = []byte(`{ "unknown_field": { "known_field_1": [[1,2,3,4,5],[10,20,30,40,50],[100,200,300,400,500]], "known_field_2": [[11,21,31,41,51]], "known_field_3": [[12,22,32,42,52],[14,44,34,44,54]] } }`) type mData struct { KnownField1 [][5]int `json:"known_field_1"` KnownField2 [][5]int `json:"known_field_2"` KnownField3 [][5]int `json:"known_field_3"` } var data map[string]mData func main() { if err := json.Unmarshal(body, &data); err != nil { panic(err) } fmt.Println(data) for k, v := range data { fmt.Println(k, v) } }
Explication :
Sortie :
map[unknown_field:{[[1 2 3 4 5] [10 20 30 40 50] [100 200 300 400 500]] [[11 21 31 41 51]] [[12 22 32 42 52] [14 44 34 44 54]]}] unknown_field {[[1 2 3 4 5] [10 20 30 40 50] [100 200 300 400 500]] [[11 21 31 41 51]] [[12 22 32 42 52] [14 44 34 44 54]]}
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!