Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Menukar Peta Go kepada Data XML?

Bagaimana untuk Menukar Peta Go kepada Data XML?

Linda Hamilton
Lepaskan: 2024-11-01 18:12:02
asal
416 orang telah melayarinya

How to Convert a Go Map to XML Data?

Peta Marshall kepada XML dalam Go

Apabila cuba menukar peta kepada data XML, ralat mungkin dihadapi:

xml: unsupported type: map[string]int
Salin selepas log masuk

Walaupun mudah untuk memetakan marshal ke JSON, menggunakan struct mungkin bukan satu-satunya pilihan.

Untuk menyelesaikan isu ini, antara muka xml.Marshaler boleh digunakan:

<code class="go">// Marshal maps into XML.
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>
Salin selepas log masuk

Dengan melaksanakan kaedah MarshalXML untuk jenis StringMap tersuai, peta boleh dimarshall sebagai XML.

Untuk menggunakan XML termarshal:

<code class="go">output, err := xml.MarshalIndent(data, "", "  ")</code>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Menukar Peta Go kepada Data XML?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan