gpt4 book ai didi

xml - 编码 XML 时可选 "omitempty"?

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

我正在尝试为 Alfred 2 应用程序生成 XML。看起来有点像这样:

<items>
<item autocomplete="My Thing">
<title>My Thing</title>
</item>
<item>
<title>My Other Thing</title>
</item>
<item autocomplete="">
<title>My Third Thing</title>
</item>
</items>

我面临的具体挑战是,如果 item 上的 autocomplete 属性缺失与设置为空字符串时 Alfred 的行为不同。

因此,我希望能够提供两种可能性:默认情况下省略属性 (omitempty),但提供强制将其设置为空字符串的可能性 ( 不是 omitempty)。

我该怎么做呢?

最佳答案

您可以在要编码(marshal)的结构中使用指针。如果指针为 nil,则该字段将被省略。如果它指向一个字符串,它将被渲染(即使该字符串为空)。

Play

type Address struct {
City *string
}

city1 := "NYC"
city2 := ""
address1 := Address{&city1}
address2 := Address{&city2}
address3 := Address{nil}

enc := xml.NewEncoder(os.Stdout)

enc.Encode(address1) // <Address><City>NYC</City></Address>
enc.Encode(address2) // <Address><City></City></Address>
enc.Encode(address3) // <Address></Address>

关于xml - 编码 XML 时可选 "omitempty"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36261195/

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