Golang unmarshal忽略空字段

Sil*_*Pal 7 go unmarshalling

我在成功提交用户详细信息时从客户端获得了JSON.

可以跳过JSON中的某些元素,因为它们未更新.

在Golang服务器端,我定义了一个等效的结构.

服务器成功地将JSON字节封送到结构中.

type user struct {
    Id       *int64  `json:",omitempty"`
    Name     *string `json:",omitempty"`
    Age      *int64  `json:",omitempty"`
}
Run Code Online (Sandbox Code Playgroud)

但对于未从客户端收到的字段,默认情况下解组为字符串的硬编码为nil,对于字符串数组为空数组.

例如,如果我得到json { "Id" : 64, "Name" : "Ryan" },
我不希望unmarshal将其转换为{"Id" : some hexadecimal, "Name" : some hexadecimal, "Age" : nil}.
为了简单起见,我希望它是{"Id" : some hexadecimal, "Name" : some hexadecimal }

我怎么能完全忽略这个领域并映射我得到的东西?

Goplayground代码:http://play.golang.org/p/3dZq0nf68R

感谢您的回复.

One*_*One 11

你有点困惑,fmt.Printf("%+v", animals)打印Go结构,它将始终打印出指定的所有字段.

但是,如果将其转换回json,它将省略nil字段.

查看http://play.golang.org/p/Q2M5oab2UX