Maison >développement back-end >Golang >Comment analyser des clés JSON dynamiques et extraire des champs spécifiques dans Go ?
Dans le domaine de l'analyse JSON, on rencontre parfois le défi des clés dynamiques au niveau supérieur d'une chaîne JSON. Supposons que nous ayons le JSON suivant :
j := `{"bvu62fu6dq": { "name": "john", "age": 23, "xyz": "weu33s" ..... .....} }`
La tâche consiste à extraire les valeurs de "nom" et "âge" de ce JSON, mais la clé "bvu62fu6dq" est dynamique et varie d'un cas à l'autre.
Une approche consiste à définir une structure qui s'adapte à cette structure de clé dynamique :
type Info struct { UniqueID map[string]string }
Cependant, cette structure est confrontée à des défis dans la gestion de l'extraction réelle du « nom » et de « l'âge ».
Pour analyser efficacement de telles structures JSON dynamiques, nous pouvons exploiter la puissance du package « encoding/json » dans Golang. Voici une solution :
type Person struct { Name string `json:"name"` Age int `json:"age"` } type Info map[string]Person
Cette configuration utilise une approche plus flexible en utilisant une carte saisie par la clé dynamique de niveau supérieur (par exemple, "bvu62fu6dq"). La structure « Personne » encapsule les données que nous cherchons à extraire de chaque sous-objet dynamique (par exemple, « nom » et « âge »).
Avec cette configuration, décoder le JSON et extraire les valeurs spécifiques devient simple :
var info Info err := json.Unmarshal([]byte(j), &info) if err != nil { // Handle error } fmt.Printf("%s: %d\n", info["bvu62fu6dq"].Name, info["bvu62fu6dq"].Age)
Cette solution complète gère non seulement les clés JSON dynamiques de premier niveau, mais prend également en charge l'extraction de champs spécifiques (par exemple, "nom" et "âge") de chaque sous-objet.
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!