我有一个结构,我将所有多余的数据放入map[string]interface{}
。
如果我使用空变量解组到Data
属性,我不想在编组时保留它。我基本上需要interface{}
来json:",omitempty"
,我该怎么做?
type Event struct {
From string `json:"from"`
Data map[string]interface{} `json:"data,omitempty"`
}
答案 0 :(得分:0)
omitempty
用于编码值,但不用于解码。
您无法在Go中生成完整的空地图。 (清空,因为它不存在。)如果你创建一个struct的变量/值,它总是有它的默认值。
package main
import "fmt"
func main() {
var m map[string]interface{}
fmt.Printf("%v %d\n", m, len(m))
// prints: map[] 0
m = nil
fmt.Printf("%v %d\n", m, len(m))
// prints: map[] 0
}
示例:Go Playground。