
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]PersonCette 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!
Le numéro de page Word commence à partir de la troisième page comme 1 tutoriel
Trois méthodes d'encodage couramment utilisées
Utilisation de la fonction accepter
Quels sont les moteurs de workflow Java ?
Comment lier des données dans une liste déroulante
Que sont les logiciels de programmation en langage C ?
Qu'est-ce que CONNECTION_REFUSED ?
Comment résoudre 400 mauvaises requêtes