我有兴趣了解是否有办法做到这一点:
type Example struct {
Name string `json:"name"`
Value string `json:"value"`
}
变成这样:
type Example struct {
Name string
Value string
}
并且仍然允许 JSON 编码/解码?是否有一个库或一种方法可以自动假设或注入(inject)这些标签,而不必在每个结构字段中都明确表示?
最佳答案
默认情况下,它将被编码为
{
"Name": "",
"Value": ""
}
但是 go 是在 go 中编写的,如果你真的想要没有标签的小写,你可以'fork'
encoding/json
包,将其重新创建为您自己的包并更改 encode.go
中的行为(go 1.13 中的第 1151 行):// Record found field and index sequence.
if name != "" || !sf.Anonymous || ft.Kind() != reflect.Struct {
tagged := name != ""
if name == "" {
name = sf.Name <-- here, for example to strings.ToLower(sf.Name)
}
....
我不建议你这样做,但它有效:)
关于json - 结构中的 json 标记真的需要编码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58240704/