gpt4 book ai didi

go - 如何在 Go 中编码 xml 但忽略空字段

转载 作者:IT王子 更新时间:2023-10-29 00:40:26 26 4
gpt4 key购买 nike

如果我有一个结构,我希望能够使用(使用编码/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

在上面的 Playground 上,我不想写出空的 street 属性;我该怎么做?

最佳答案

street 字段上使用 omitempty 标志。

来自 Go XML package :

  • a field with a tag including the "omitempty" option is omitted if the field value is empty. The empty values are false, 0, any nil pointer or interface value, and any array, slice, map, or string of length zero.

以你的例子为例:

package main

import (
"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))
}

Playground

关于go - 如何在 Go 中编码 xml 但忽略空字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32436885/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com