Golang 切片转 JSON 为空,如何解决?
当将一个空切片 [] 转换为 json 时,结果可能会是空的对象数组,而不是预期的空数组。这可能是由于以下原因造成的:
成员名称错误
结构体的成员名称必须大写导出(以大写字母开头)才能在 json 中被序列和反序列化。将成员名称小写导出会产生空 json 对象。
立即学习“go语言免费学习笔记(深入)”;
使用 json tag
如果希望成员在 json 中使用与成员名称不同的名称,可以使用 json tag。例如,可以使用以下特性将 sfz 字段映射到 json 中的 "sfz" 字段:
type user struct { name string // 大写导出成员 sfz string `json:"sfz"` // 使用 json tag }
修改代码示例
根据上述原因,可以对代码示例进行修改,如下所示:
type User struct { Name string Sfz string `json:"sfz"` }
这样,代码将能够正确地将切片转换为非空的 json 数组。