登录
首页 >  Golang >  Go问答

如何从 MapInterface{} 编组 XML?

来源:stackoverflow

时间:2024-04-18 16:30:29 249浏览 收藏

从现在开始,努力学习吧!本文《如何从 MapInterface{} 编组 XML?》主要讲解了等等相关知识点,我会在golang学习网中持续更新相关的系列文章,欢迎大家关注并积极留言建议。下面就先一起来看一下本篇正文内容吧,希望能帮到你!

问题内容

我正在构建一个 api 来处理 post 中的 xml 数据,并在响应中返回它。应该处理此封送处理的函数正在接收 map[string]interface{} 类型的变量数据,如下所示(如果将其记录到控制台):

map[lala:success blabla:0xc42011e700 status:true]

复制适用于 json 编组的步骤或尝试遵循文档让我陷入了死胡同。这是我到目前为止的代码:

type Map map[string]interface{}

type xmlMapEntry struct {
    XMLName xml.Name
    Value   string `xml:",chardata"`
}

func (m Map) MarshalXML(e *xml.Encoder, start xml.StartElement) error {

    for k, v := range m {
        e.Encode(xmlMapEntry{XMLName: xml.Name{Local: k}, Value: v})
    }

    return e.EncodeToken(start.End())
}

当 e.encode 行返回时,我陷入了死胡同:cannot use v (type interface {}) as type string in field value: need type assertion


解决方案


已解决。回答: 首先,我的 struct VALUE 类型为 string 而不是 interaface,其次,要查看数据解析,我必须实际对其进行编组。使用: x, _ := xml.MarshalIndent(地图(数据), "", " ")

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>