如何在 Go 中编组 xml 但忽略空字段

如果我有一个结构,我希望能够使用(使用编码/xml)对 xml 中的内容进行编组/解组 - 我如何不打印空属性?


package main


import (

    "encoding/xml"

    "fmt"

)


type MyThing struct {

    XMLName xml.Name `xml:"body"`

    Name    string   `xml:"name,attr"`

    Street  string   `xml:"street,attr"`

}


func main() {

    var thing *MyThing = &MyThing{Name: "Canister"}

    result, _ := xml.Marshal(thing)

    fmt.Println(string(result))

}

例如见http://play.golang.org/p/K9zFsuL1Cw


在上面的操场上,我不想写出我的空街道属性;我怎么能那样做?


富国沪深
浏览 339回答 1
1回答

慕容708150

omitempty在street场上使用标志。从Go XML 包:如果字段值为空,则省略带有包含“omitempty”选项的标签的字段。空值是 false、0、任何 nil 指针或接口值,以及任何长度为零的数组、切片、映射或字符串。如果是您的示例:package mainimport (    "encoding/xml"    "fmt")type MyThing struct {    XMLName xml.Name `xml:"body"`    Name    string   `xml:"name,attr"`    Street  string   `xml:"street,attr,omitempty"`}func main() {    var thing *MyThing = &MyThing{Name: "Canister"}    result, _ := xml.Marshal(thing)    fmt.Println(string(result))}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go