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
Patricia Arquetteoriginal
2024-12-30 22:49:14844parcourir

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,
    .....
    .....}

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"`
}

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

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)

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:
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