Maison > développement back-end > Golang > Comment décoder JSON avec des clés imbriquées dynamiques dans Go ?

Comment décoder JSON avec des clés imbriquées dynamiques dans Go ?

Mary-Kate Olsen
Libérer: 2024-11-25 12:01:15
original
794 Les gens l'ont consulté

How to Decode JSON with Dynamic Nested Keys in Go?

Les structures dynamiques imbriquées JSON vont au décodage

Dans ce scénario, la réponse JSON contient des clés dynamiques dans l'objet "sms" imbriqué. Les méthodes de décodage de structure conventionnelles échoueront en raison de numéros de téléphone inconnus comme clés.

Solution : cartes et gestion dynamique des clés

Pour désérialiser efficacement ces données, une structure de données cartographiques est employé. Le code modifié ci-dessous introduit une map[string]SMSPhone pour modéliser l'objet "sms" :

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

Processus de démarshaling

Avec cette carte en place, le démarshaling Le processus peut désormais gérer correctement les numéros de téléphone dynamiques :

var result SMSSendJSON

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

Exemple Sortie

La carte des résultats contiendra les numéros de téléphone sous forme de clés et leurs structures SMSPhone associées :

{Status:OK StatusCode:100 Sms:map[79035671233:{Status:ERROR StatusCode:203 StatusText:Нет текста сообщения} 79105432212:{Status:ERROR StatusCode:203 StatusText:Нет текста сообщения} 79607891234:{Status:ERROR StatusCode:203 StatusText:Нет текста сообщения}] Balance:2676.18}
Copier après la connexion

Cette approche permet un décodage efficace des réponses JSON avec des structures imbriquées dynamiques.

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