Heim > Backend-Entwicklung > Golang > So Marshallen Sie Karten in Go in XML: Was tun, wenn der Fehler „xml: unsupported type: map[string]int' angezeigt wird?

So Marshallen Sie Karten in Go in XML: Was tun, wenn der Fehler „xml: unsupported type: map[string]int' angezeigt wird?

Mary-Kate Olsen
Freigeben: 2024-11-03 11:17:02
Original
592 Leute haben es durchsucht

How to Marshal Maps to XML in Go: What to Do When You Get the

Marshalling von Karten in XML in Go

Beim Versuch, eine Karte in XML-Daten zu konvertieren, stoßen Entwickler möglicherweise auf eine Fehlermeldung mit der Meldung „xml: nicht unterstützter Typ: Karte[Zeichenfolge]“ int." Obwohl das Marshalling von Karten für JSON möglich ist, wird es für XML standardmäßig nicht unterstützt.

Eine Lösung für dieses Problem ist die Verwendung der xml.Marshaler-Schnittstelle. Durch die Erstellung eines benutzerdefinierten StringMap-Typs und die Implementierung von MarshalXML können Sie steuern, wie die Karte in XML serialisiert wird. Dadurch können Sie die gewünschte Struktur und Elementnamen angeben.

Hier ist eine Beispielimplementierung von MarshalXML für eine StringMap:

<code class="golang">func (s StringMap) MarshalXML(e *xml.Encoder, start xml.StartElement) error {

    tokens := []xml.Token{start}

    for key, value := range s {
        t := xml.StartElement{Name: xml.Name{"", key}}
        tokens = append(tokens, t, xml.CharData(value), xml.EndElement{t.Name})
    }

    tokens = append(tokens, xml.EndElement{start.Name})

    for _, t := range tokens {
        err := e.EncodeToken(t)
        if err != nil {
            return err
        }
    }

    // flush to ensure tokens are written
    return e.Flush()
}</code>
Nach dem Login kopieren

Sobald Sie MarshalXML implementiert haben, können Sie einfach xml.MarshalIndent aufrufen auf Ihren Daten, um die gewünschte XML-Ausgabe zu generieren.

Das obige ist der detaillierte Inhalt vonSo Marshallen Sie Karten in Go in XML: Was tun, wenn der Fehler „xml: unsupported type: map[string]int' angezeigt wird?. 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