Go 切片转 JSON 为何出现空数组问题?
在 golang 中,将切片转换为 json 时,可能会遇到切片中元素为空数组的问题。这是因为在 json 编码过程中会忽略空字段,而无法将切片中的空元素编码为 json 数组。
造成此问题的原因可能是切片中包含的结构体成员未大写导出。在 go 中,只有大写导出的成员才可以在 json 编码过程中被访问和序列化。此外,如果希望在 json 中使用与成员名称不同的名称,可以使用 json 结构体标记来指定自定义名称。
以下代码修复了这个问题:
type User struct { Name string // 大写导出成员 Sfz string `json:"sfz"` // 使用 struct tag 指定自定义 JSON 名称 }