Marshall Maps to XML in Go
지도를 XML 데이터로 변환하려고 하면 오류가 발생할 수 있습니다.
xml: unsupported type: map[string]int
지도를 JSON으로 마샬링하는 것은 간단하지만 구조체를 사용하는 것이 유일한 것은 아닐 수도 있습니다. option.
이 문제를 해결하려면 xml.Marshaler 인터페이스를 활용할 수 있습니다.
<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>
사용자 정의 StringMap 유형에 대한 MarshalXML 메서드를 구현하면 지도를 XML로 마샬링할 수 있습니다.
마샬링된 XML을 사용하려면:
<code class="go">output, err := xml.MarshalIndent(data, "", " ")</code>
위 내용은 Go 지도를 XML 데이터로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!