Maison > développement back-end > Golang > Comment détecter les attributs en double dans les chaînes JSON à l'aide de Go ?

Comment détecter les attributs en double dans les chaînes JSON à l'aide de Go ?

Patricia Arquette
Libérer: 2024-12-04 14:04:13
original
1049 Les gens l'ont consulté

How to Detect Duplicate Attributes in JSON Strings Using Go?

Détecter les attributs en double dans une chaîne JSON à l'aide de Golang

Pour détecter les attributs en double dans une chaîne JSON à l'aide de Golang, une approche récursive utilisant le json. Un décodeur peut être utilisé. Cette méthode parcourt la structure JSON, vérifiant les clés en double à chaque niveau d'objet.

Pour implémenter cette approche :

  1. Créez une fonction check() qui prend un json.Decoder et un fonction de rappel dup.
  2. Utilisez d.Token() pour obtenir le jeton suivant dans le flux JSON.
  3. Si le jeton est un délimiteur {, entrez un objet et créez une carte pour suivre les clés.
  4. Parcourez l'objet en vérifiant les clés en double dans la carte. Si un doublon est trouvé, appelez la fonction dup.
  5. Vérifiez récursivement les valeurs à l'aide de la fonction check().
  6. Si le jeton est un délimiteur [, entrez un tableau et parcourez les éléments, de manière récursive vérifier chaque élément.
  7. Consommer les délimiteurs de fin pour terminer l'analyse.

Le La fonction dup peut être personnalisée pour gérer les doublons selon les besoins, comme la journalisation, l'enregistrement ou l'arrêt du processus d'analyse.

Exemple d'utilisation

func main() {
    data := `{"a": "b", "a":true,"c":["field_3 string 1","field3 string2"]}`
    dup := func(path []string) error {
        fmt.Printf("Duplicate %s\n", strings.Join(path, "/"))
        return nil
    }

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

Sortie

Duplicate a
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
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