golang中结构体转成xml格式
本文主要介绍结构体与xml格式的字符串进行相互转换,Go自带xml包,所以进行格式转换非常的方便。
一、结构体转成xml格式
1、转成不需要排版的xml格式字符串,可直接使用Marshal()方法
func Marshal(v interface{}) ([]byte, error)
2、转成可以排版的xml格式,可以使用MarshalIndent()方法
MarshalIndent(v interface{}, prefix, indent string)
参数说明:prefix为前缀(用于所有的标签),indent为字段缩进(用于field)
例:
type RedPacketQueryRequest struct {
MchBillno string `xml:”mch_billno”`
MchId string `xml:”mch_id”`
NonceStr string `xml:”nonce_str”`
Sign string `xml:”sign”`
Appid string `xml:”appid”`
BillType string `xml:”bill_type”`
}
func main() {
redPack:=RedPacketQueryRequest{
MchBillno:”13ffsd”,
MchId:”1545441”,
NonceStr:”sfds5f4ds54f54s5f4d”,
Sign:”DRFFDSF414”,
Appid:”wx124334324”,
BillType:”fsd”,
}
//结构体转成xml格式
if xmlByteData,err:=xml.Marshal(redPack);err==nil{
strData:=string(xmlByteData)
fmt.Println(strData)
//转成xml格式
fmt.Println(strings.Replace(strData,”RedPacketQueryRequest”,”xml”,-1))
//结构体转成xml格式化的格式
if xmlIndentByteData, err2 := xml.MarshalIndent(redPack, “”, “ “); err2==nil{
strData:=string(xmlIndentByteData)
fmt.Println(strData)
fmt.Println(strings.Replace(strData,”RedPacketQueryRequest”,”xml”,-1))
}
}
//打印结果
13ffsd 1545441 sfds5f4ds54f54s5f4d DRFFDSF414 wx124334324 fsd
2.
二、将xml格式的字符串转成结构体
使用方法如下:
Unmarshal(data []byte, v interface{}) error
例:
xmlStr:= `
redPack2:=RedPacketQueryRequest{}
xml.Unmarshal([]byte(xmlStr),&redPack2)
还没有评论,来说两句吧...