我很想知道是否有办法做到这一点:
type Example struct {
Name string `json:"name"`
Value string `json:"value"`
}
成为这个:
type Example struct {
Name string
Value string
}
仍然允许JSON封送/拆封吗?是否有一个库或一种方法来自动假定或注入这些标签,而不必在每个struct字段中都明确显示?
答案 0 :(得分:0)
默认情况下,它将被编码为
{
"Name": "",
"Value": ""
}
但是go是写在go上的,如果您真的很想小写而没有标签,则可以“ fork” encoding/json
包,将其重新创建为您自己的包,并在encode.go
中更改行为(第1151行)在1.13版中):
// 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)
}
....
我不建议您这样做,但是它可以:)