如何判断解析从json到struct中的字段那个是缺省的。

json:= {"aa":1,"bb":2}
type A struct{
AA int json:"aa"
BB int json:"bb"
CC int json:"cc"
}
var a A

如果我json.Unmarshal([]byte(json),&a)的话,a.CC 中是0,我不能确定原来的json里是否是传入了0,所以有什么办法在unmarshal的时候过滤缺省的字段?

如果在CC字段后面加TAG json:"cc,omitemtpy"这种是可以encode的时候省略缺省的字段,但是反过来不知道有什么办法。

阅读 6.9k
2 个回答

可以使用指针

type A struct{
AA *int json:"aa"
BB *int json:"bb"
CC *int json:"cc"
}

我不知道有什么办法,不过你可以换一种解决办法,定义CC字段为string类型,判断string是"0" 还是 ""

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题