Maison > développement back-end > Golang > Comment désorganiser JSON avec des noms de champs inconnus dans Go à l'aide d'une carte ?

Comment désorganiser JSON avec des noms de champs inconnus dans Go à l'aide d'une carte ?

DDD
Libérer: 2024-12-26 03:32:09
original
284 Les gens l'ont consulté

How to Unmarshal JSON with Unknown Field Names in Go Using a Map?

Désassembler JSON avec des noms de champs inconnus à l'aide d'une carte

Désassembler JSON avec des noms de champs inconnus pose un défi, en particulier lorsque la structure de l'objet reste cohérente. Cette question explique comment gérer de tels scénarios et fournit une solution à l'aide d'une carte Golang.

Problème :

La réponse JSON fournie à partir d'une requête POST contient un champ avec un nom inconnu. Le but est de transformer ce JSON en une structure tout en préservant la structure cohérente des champs connus.

Solution :

Étape 1 : Créer une structure pour les champs connus

Définissez une structure nommée mData qui représente les champs cohérents dans le JSON :

type mData struct {
    KnownField1 [][5]int `json:"known_field_1"`
    KnownField2 [][5]int `json:"known_field_2"`
    KnownField3 [][5]int `json:"known_field_3"`
}
Copier après la connexion

Étape 2 : Utiliser une carte pour gérer les noms de champs inconnus

Créez une carte appelée data pour stocker le nom de champ inconnu en tant que clé et instance de mData comme valeur :

var data map[string]mData
Copier après la connexion

Étape 3 : Désassemblez le JSON dans le Map

Utilisez json.Unmarshal pour lier le corps JSON à la carte :

if err := json.Unmarshal(body, &data); err != nil {
    panic(err)
}
Copier après la connexion

Étape 4 : Imprimer les résultats

La carte contiendra désormais le nom de champ inconnu et l'instance mData associée. Vous pouvez accéder aux valeurs à l'aide du code suivant :

for k, v := range data {
    fmt.Println(k, v)
}
Copier après la connexion

Cette approche vous permet de désorganiser JSON avec des noms de champs inconnus tout en conservant la structure des champs connus. La sortie du code fourni sera :

unknown_field [[[1 2 3 4 5] [10 20 30 40 50] [100 200 300 400 500]] [[11 21 31 41 51]] [[12 22 32 42 52] [14 44 34 44 54]]]
Copier après la connexion

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal