【发布时间】:2021-05-01 15:21:02
【问题描述】:
因为 go 有 int 类型的默认值,所以如果我定义了一个 int 类型,并将其推入 struct/map/slice... 然后j, _ := json.Marshal(resource),它将是0。
有什么办法可以把它变成json字符串中的null?
例如:
var a int
b := []int{a, 1, 2}
s, _ := json.Marshal(b)
我对@987654325@ 的预期输出是[null, 1, 2]
【问题讨论】:
-
a不为空。它的值为0。 -
您希望
[]int{0, 1, 2}的输出是什么? -
“有没有办法让它在 json 字符串中变成 null ?” -- 不,不是用内置的
int类型。您必须使用其他类型,可以是 Gonil(例如*int或interface{})。或者您需要定义自己的类型,知道值0应该在编组为 json 时转换为null(通过实现 json.Unmarshaler 接口)。
标签: go