Maison > développement back-end > Golang > Comment analyser des données JSON avec des structures dynamiques imbriquées dans Go ?

Comment analyser des données JSON avec des structures dynamiques imbriquées dans Go ?

Patricia Arquette
Libérer: 2024-11-19 16:25:02
original
235 Les gens l'ont consulté

How to Parse JSON Data with Nested Dynamic Structures in Go?

Décodage Go des structures dynamiques imbriquées JSON

Cette discussion explore le défi de l'analyse des données JSON avec des structures dynamiques imbriquées dans Go.

Problème :

Les exemples de données JSON contiennent une structure imbriquée avec des clés dynamiques, telles que des numéros de téléphone, comme indiqué ci-dessous :

{
    "status": "OK",
    "status_code": 100,
    "sms": {
        "79607891234": {
            "status": "ERROR",
            "status_code": 203,
            "status_text": "Нет текста сообщения"
        },
        "79035671233": {...},
        "79105432212": {...}
    },
    "balance": 2676.18
}
Copier après la connexion

L'exemple de code fourni tente d'utiliser une liste fixe de numéros de téléphone pour modéliser la structure imbriquée, mais cette approche échoue en raison de la nature dynamique des clés de numéro de téléphone.

Solution :

Pour gérer des structures dynamiques imbriquées, il faut utiliser une carte au lieu d'une liste fixe pour modéliser les données. Pour cet exemple, les structures de données suivantes peuvent être utilisées :

type SMSPhone struct {
    Status     string `json:"status"`
    StatusCode int    `json:"status_code"`
    StatusText string `json:"status_text"`
}

type SMSSendJSON struct {
    Status     string              `json:"status"`
    StatusCode int                 `json:"status_code"`
    Sms        map[string]SMSPhone `json:"sms"`
    Balance    float64             `json:"balance"`
}
Copier après la connexion

Dans cette structure mise à jour, map[string]SMSPhone est utilisé pour représenter l'objet "sms" imbriqué, où les clés de la carte correspondent à la dynamique numéros de téléphone.

Pour désorganiser les données JSON dans ces structures, le code suivant peut être utilisé :

var result SMSSendJSON

if err := json.Unmarshal([]byte(src), &result); err != nil {
    panic(err)
}
fmt.Printf("%+v", result)
Copier après la connexion

Le résultat sera une structure Go avec une carte contenant le numéro de téléphone dynamique imbriqué data.

Les questions connexes présentant l'utilisation de cartes pour les structures dynamiques dans Go incluent :

  • Comment analyser/déserliser un JSON dynamique dans Golang
  • Comment désorganiser JSON avec des noms de champs inconnus à structurer dans Golang ?
  • Désassembler JSON avec des champs inconnus
  • Désassembler la chaîne JSON en une structure qui possède un élément de la structure elle-même

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!

source:php.cn
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