Maison > développement back-end > Golang > Comment analyser JSON avec des clés dynamiques de premier niveau dans Go ?

Comment analyser JSON avec des clés dynamiques de premier niveau dans Go ?

Patricia Arquette
Libérer: 2024-12-30 22:49:14
original
859 Les gens l'ont consulté

How to Parse JSON with Dynamic Top-Level Keys in Go?

Analyse JSON avec des clés dynamiques dans Golang

Dans Golang, analyser une chaîne JSON avec une clé dynamique de niveau supérieur peut être difficile. Considérez le JSON suivant :

{"bvu62fu6dq": {
    "name": "john",
    "age": 23,
    .....
    .....}
Copier après la connexion

Pour extraire les valeurs de « nom » et « âge », une solution personnalisée est requise car la clé de niveau supérieur n'est pas un champ fixe.

Utilisation de Go Structs et Maps

Une approche optimale consiste à définir une structure pour représenter l'objet interne et une carte pour représenter la clé dynamique de niveau supérieur. La structure doit inclure des champs pour les attributs souhaités, tels que :

type Person struct {
    Name string `json:"name"`
    Age  int    `json:"age"`
}
Copier après la connexion

La carte, à son tour, peut utiliser la clé dynamique de niveau supérieur comme clé et la structure Person comme valeur. Cette structure permet un accès efficace aux valeurs souhaitées :

type Info map[string]Person
Copier après la connexion

Décodage et extraction

Pour décoder le JSON dans les structures personnalisées, utilisez la fonction json.Unmarshal. Une fois décodées, les valeurs sont accessibles via la clé de mappage :

var info Info
json.Unmarshal([]byte(j), &info)
fmt.Printf("%s: %d\n", info["bvu62fu6dq"].Name, info["bvu62fu6dq"].Age)
Copier après la connexion

Cette approche offre une manière flexible et extensible de gérer JSON avec des clés dynamiques de niveau supérieur, garantissant un accès facile aux attributs souhaités.

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal