1. 首页
  2. 编程语言
  3. 其他
  4. go json转换实践中遇到的坑

go json转换实践中遇到的坑

上传者: 2021-04-28 20:46:26上传 PDF文件 225.59 KB 热度 15次

在使用 go 语言开发过程中,经常需要使用到 json 包来进行 json 和 struct 的互相转换,在使用过程中,遇到了一些需要额外注意的地方,记录如下。假设有一个 Person 结构,其中包含 Age int64 和 Weight float64 两个字段,现在通过 json 包将 Person 结构转为 map[string]interface{},代码如下。转换成 map[string]interface{} 之后,原先的 uint64 和 float64 类型都被转换成了 float64 类型,这显然是不符合我们的预期的。json 包还针对这个问题提供了更好的解决方案,不过需要使用 json.Decoder 来代替 json.Unmarshal 方法,将 json.Unmarhsal 替换如下。使用下面的代码来输出 json.Marshal 方法将 Time 类型转换为字符串后的格式。接下来测试一下 json.Unmarshal 方法所支持的日期时间格式。需要注意这样的情况:如果一个人的年龄是 0 ,刚好是 int 字段的零值,在添加 omitempty tag 的情况下,年龄字段会被忽略。

下载地址
用户评论