- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在尝试为 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
,则该字段将被省略。如果它指向一个字符串,它将被渲染(即使该字符串为空)。
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/
有什么方法可以强制omitempty对于结构中的所有字段 没有 针对每个字段明确指定它? type Item struct { Name string `json:"item,omit
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
我很好奇 omit empty 的用例是什么: type Example struct { ID string `json:",omitempty"` Name
我正在尝试为 Alfred 2 应用程序生成 XML。看起来有点像这样: My Thing My Other Thing
在我的网络服务中,我有一个模型: // Comment struct type Comment struct { Owner UserObject `json:
我正在使用返回 XML 的 REST API 并尝试解码 XML,但我遇到的问题似乎是 omitempty不管用。这是一个工作 XML 文件的示例: Firstname
如果 null sql.NullString 无效,应该如何不呈现它? - http://play.golang.org/p/pzSWS9vE0J 它似乎不能与 omitempty struct 标签
尝试 json Marshal 包含 2 个时间字段的结构。但我只希望该字段具有时间值(value)。所以我正在使用 json:",omitempty" 但它不起作用。 我可以将 Date 值设置为什
下面的代码是解释。我可以使用非简单类型的唯一方法是使该类型成为指针。 是否有不使用指针的替代解决方案? 代码不工作: type Foo struct { Bar Bar `json:"bar,
我正在使用带有 json 代理的 google grpc。出于某种原因,我需要从 *.pb.go 文件中生成的结构中删除 omitempty 标记。 如果我有这样的原始消息 message Statu
当将一个结构编码为 JSON 时,我可以将一个变量分配给它对应的“空值”,并且即使在使用 omitempty 时仍然传递它,但是我无法在嵌套结构中获得相同的结果,因为尽管它被省略了作为一个指针。这可能
我试图省略 nil 接口(interface)值 package main import ( "fmt" "encoding/json" ) type MyStruct struct{
请看下面。 https://play.golang.org/p/HXrqLqYIgz 我的期望值是: {"Byte2":0,"Name":"bob"} 但实际: {"ByteArray":[0,0,0
我正在处理一个优惠券表单,其中有一些可选字段。 简介: 所有表单字段值都以 JSON 格式接收并映射到 Golang 结构中。在结构中,我为每个字段添加了一个“omitempty”标志。因此只有那些具
我是一名优秀的程序员,十分优秀!