Heim > Backend-Entwicklung > Golang > Wie erkennt man mit Go doppelte Attribute in JSON-Strings?

Wie erkennt man mit Go doppelte Attribute in JSON-Strings?

Patricia Arquette
Freigeben: 2024-12-04 14:04:13
Original
1048 Leute haben es durchsucht

How to Detect Duplicate Attributes in JSON Strings Using Go?

Doppelte Attribute in einer JSON-Zeichenfolge mithilfe von Golang erkennen

Um doppelte Attribute in einer JSON-Zeichenfolge mithilfe von Golang zu erkennen, einem rekursiven Ansatz unter Verwendung von JSON. Decoder einsetzbar. Diese Methode durchläuft die JSON-Struktur und prüft auf jeder Objektebene auf doppelte Schlüssel.

So implementieren Sie diesen Ansatz:

  1. Erstellen Sie eine Funktion check(), die einen json.Decoder und einen benötigt dup-Rückruffunktion.
  2. Verwenden Sie d.Token(), um das nächste Token im JSON abzurufen Stream.
  3. Wenn das Token ein Trennzeichen { ist, geben Sie ein Objekt ein und erstellen Sie eine Karte, um Schlüssel zu verfolgen.
  4. Durchlaufen Sie das Objekt und suchen Sie nach doppelten Schlüsseln in der Karte. Wenn ein Duplikat gefunden wird, rufen Sie die Funktion dup auf.
  5. Rekursiv Werte mit der Funktion check() prüfen.
  6. Wenn das Token ein Trennzeichen [ ist, geben Sie ein Array ein und durchlaufen Sie die Elemente rekursiv Überprüfen jedes Elements.
  7. Verwenden Sie nachgestellte Trennzeichen, um das zu vervollständigen Parsing.

Die Dup-Funktion kann angepasst werden, um Duplikate nach Bedarf zu verarbeiten, z. B. Protokollierung, Aufzeichnung oder Anhalten des Parsing-Prozesses.

Beispielverwendung

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)
    }
}
Nach dem Login kopieren

Ausgabe

Duplicate a
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie erkennt man mit Go doppelte Attribute in JSON-Strings?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage