Marshall Go 지도를 XML로
Go 지도를 JSON으로 변환하는 것은 간단합니다. 그러나 XML에 대해 동일한 작업을 수행하려고 하면 오류가 발생할 수 있습니다.
xml: unsupported type: map[string]int
해결책: 사용자 정의 XML 마샬러 사용
JSON과 달리 XML 마샬링은 본질적으로 맵을 지원하지 않습니다. 이 제한 사항을 해결하려면 지도 유형에 대해 사용자 정의 xml.Marshaler를 구현할 수 있습니다.
<code class="go">// StringMap is a map[string]string. type StringMap map[string]string // StringMap marshals 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>
이제 xml.MarshalIndent(...)를 호출하여 지도를 XML로 마샬링할 수 있습니다.
<code class="go">output, err := xml.MarshalIndent(data, "", " ")</code>
위 내용은 Go 맵을 XML로 변환하는 방법: 사용자 정의 마샬러 접근 방식의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!