如何在golang中使用变量设置json标签?

Cal*_*oki 2 json go

有没有办法设置结构体的字段标签?例如 :

type contact struct {
    Mail string `json:"contact"`
}

newStruct := setTag(temp, "Mail", "mail")

data, _ := json.Marshaller(qwe)
fmt.Println(data)
Run Code Online (Sandbox Code Playgroud)

它接受这个有效负载:

{
    "mail": "blabla"
}
Run Code Online (Sandbox Code Playgroud)

Aru*_*ath 5

看起来你希望 json 的键是一个变量。您可以使用地图数据类型来完成此操作。

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}"
}
Run Code Online (Sandbox Code Playgroud)

playground