Maison > développement back-end > Golang > Comment Golang peut-il détecter et gérer les attributs en double dans les chaînes JSON ?

Comment Golang peut-il détecter et gérer les attributs en double dans les chaînes JSON ?

Barbara Streisand
Libérer: 2024-12-09 14:37:13
original
966 Les gens l'ont consulté

How Can Golang Detect and Handle Duplicate Attributes in JSON Strings?

Détection des attributs en double dans les chaînes JSON à l'aide de Golang

Cet article se concentre sur l'identification des attributs en double dans une chaîne JSON à l'aide de Golang. JSON (JavaScript Object Notation) est un format de données largement utilisé pour l'échange de données. La détection des doublons est essentielle pour maintenir l'intégrité des données et garantir un traitement cohérent.

Utilisation du décodeur JSON et de la fonction de détection des doublons personnalisés

Pour détecter les attributs en double, le json.Decoder est utilisé pour parcourir la chaîne JSON. La fonction de vérification est introduite, qui explore de manière récursive la structure JSON et examine les clés et les valeurs pour les doublons.

Aperçu de la mise en œuvre

  • fonction de vérification : Parcourt les jetons JSON, en distinguant les objets et tableaux.
  • Gestion des objets : Pour les objets, une carte est utilisée pour suivre les clés rencontrées, évitant ainsi les doublons. Si une clé en double est découverte, la fonction dup fournie est invoquée.
  • Gestion des tableaux : Pour les tableaux, chaque élément est examiné de manière récursive.
  • Fonction dup : Cette fonction personnalisée définit l'action à entreprendre lors de la détection d'un doublon, soit en l'imprimant, soit en renvoyant un erreur.

Exemple d'utilisation

Considérez la chaîne JSON fournie :

{"a": "b", "a":true,"c": ["field_3 string 1","field3 string2"]}
Copier après la connexion

Pour imprimer les clés en double :

func printDup(path []string) error {
    fmt.Printf("Duplicate %s\n", strings.Join(path, "/"))
    return nil
}

data := ... // JSON string
if err := check(json.NewDecoder(strings.NewReader(data)), nil, printDup); err != nil {
    log.Fatal(err)
}
Copier après la connexion

Détecter les erreurs en double

Pour arrêtez le parcours JSON après avoir trouvé la première clé en double :

var ErrDuplicate = errors.New("duplicate")

func dupErr(path []string) error {
    return ErrDuplicate
}

data := ... // JSON string
if err := check(json.NewDecoder(strings.NewReader(data)), nil, dupErr); err == ErrDuplicate {
    fmt.Println("found a duplicate")
}
Copier après la connexion

Conclusion

Cette technique fournit une approche personnalisable et robuste pour détecter les attributs en double dans les chaînes JSON. En tirant parti de json.Decoder et en définissant une fonction de gestion des doublons personnalisée, les développeurs peuvent maintenir l'intégrité des données et garantir un traitement JSON cohérent.

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