在Golang中解组JSON后的默认值是什么?

huangapple go评论82阅读模式
英文:

Default Values after Unmarshalling json in Golang

问题

我正在使用Golang中的json.Unmarshall将JSON数据解组为结构体。
在解组之前,我已经将结构体中的所有字段设置为默认值。
现在,在调用json.Unmarshall之后,如果JSON数据中缺少某些结构体字段,Unmarshal不应该设置这些字段,并且这些结构体字段的值应该保留在调用Unmashall之前设置的默认值。
有没有办法做到这一点?

英文:

I am using json.Unmarshall in Golang to unmarshall json data into a structure.
I have set all the fields in my structure to a default values before unmarshalling.
Now after calling json.Unmarshall if some of the structure fields are not present in the json data,the Unmarshal should not set those fields and values of those struct fields should retain default values that I set before calling Unmashall.
Is there any way to do this?

答案1

得分: 1

有没有办法做到这一点?

没有,使用encoding/json是不可能的。
你要么自己编写解码代码,尝试通过提供自己的UnmarshalJSON方法来实现,或者寻找支持此功能的库。但老实说:最好重新设计一下。

英文:

> Is there any way to do this?

No, there isn't with encoding/json.
You either have to write your own unmarshaling code, try to do it by providing your own UnmarshalJSON or look for a library which supports this. But honestly: Just redesign.

huangapple
  • 本文由 发表于 2021年5月20日 14:09:10
  • 转载请务必保留本文链接:https://go.coder-hub.com/67614819.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定