Maison >développement back-end >Golang >Golang peut-il utiliser plusieurs balises JSON pour un seul champ de structure ?
Alias de balise JSON en Golang
Dans Golang, la balise json struct est utilisée pour spécifier le nom de champ JSON correspondant à un champ struct. Cependant, est-il possible d'attribuer plusieurs noms à un seul champ ?
La réponse est oui, mais pas avec le package encoding/json de la bibliothèque standard. Pour y parvenir, vous pouvez utiliser des bibliothèques JSON tierces telles que github.com/json-iterator/go.
Utilisation de jsoniter
Avec jsoniter, vous pouvez définir plusieurs balises JSON à l'aide de la propriété newtag. Voici un exemple :
package main import ( "fmt" "github.com/json-iterator/go" ) type TestJson struct { Name string `json:"name" newtag:"newname"` Age int `json:"age" newtag:"newage"` } func main() { var json = jsoniter.ConfigCompatibleWithStandardLibrary data := TestJson{} data.Name = "zhangsan" data.Age = 22 byt, _ := json.Marshal(&data) fmt.Println(string(byt)) // {"name":"zhangsan","age":22} var newJson = jsoniter.Config{ TagKey: "newtag", }.Froze() byt, _ = newJson.Marshal(&data) fmt.Println(string(byt)) // {"newname":"zhangsan","newage":22} }
Dans cet exemple, la structure TestJson définit plusieurs balises JSON pour les champs Nom et Âge. Lors de la sérialisation à l'aide du package json de la bibliothèque standard, la balise json par défaut est utilisée. Cependant, lors de l'utilisation de jsoniter avec la configuration newtag, il utilise à la place les valeurs newtag spécifiées.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!