有没有办法设置结构的字段标记? 例如:
type contact struct {
Mail string `json:"contact"`
}
newStruct := setTag(temp, "Mail", "mail")
data, _ := json.Marshaller(qwe)
fmt.Println(data)
并接受此有效负载:
{
"mail": "blabla"
}
答案 0 :(得分:2)
看起来你希望你的json密钥是一个变量。您可以使用map数据类型执行此操作。
package main
import "fmt"
import "encoding/json"
func main() {
asd := "mail"
qwe := make(map[string]string)
qwe[asd] = "jack"
data, _ := json.Marshal(qwe)
fmt.Println(string(data)) // Prints "{mail: jack}"
}
答案 1 :(得分:0)
您必须导出密钥。 Working example
来自godoc的包json.Marshal,
Struct值编码为JSON对象。每个导出的struct字段 成为对象的成员,除非
- 字段的标记为“ - ”或
- 该字段为空,其标签指定“omitempty”选项。