Analyse du JSON complexe avec Go's Unmarshal
Le package encoding/json fournit la fonction json.Unmarshal pour analyser les données JSON. Cette fonction peut être utilisée pour transformer une chaîne JSON en une structure prédéfinie ou une valeur d'interface{}.
Lorsqu'il s'agit de structures JSON complexes pouvant inclure des tableaux et des objets imbriqués, l'utilisation de l'interface{} permet aux développeurs de gérer les imprévus. structures de données. Par exemple, considérons le JSON suivant :
{ "k1": "v1", "k2": "v2", "k3": 10, "result": [ [ ["v4", "v5", {"k11": "v11", "k22": "v22"}], ... ], "v3" ] }
Pour analyser ce JSON, nous pouvons utiliser l'extrait de code suivant :
import ( "encoding/json" "fmt" ) func main() { b := []byte(`{ "k1" : "v1", "k2" : "v2", "k3" : 10, "result" : [ [ ["v4", v5, {"k11" : "v11", "k22" : "v22"}] , ... , ["v4", v5, {"k33" : "v33", "k44" : "v44"} ] ], "v3" ] }`) var f interface{} err := json.Unmarshal(b, &f) if err != nil { fmt.Println("Error:", err) } // Access the data in the interface{} value m := f.(map[string]interface{}) fmt.Println("k1:", m["k1"]) fmt.Println("k3:", m["k3"]) for _, v := range m["result"].([]interface{}) { fmt.Println("Element:", v) } }
En parcourant la carte et en utilisant un commutateur de type, nous pouvons accéder aux valeurs avec les types corrects. Cette approche nous permet de travailler avec des structures JSON inconnues de manière flexible et sécurisée.
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!