Maison >développement back-end >Golang >Comment puis-je définir des valeurs par défaut pour les champs JSON manquants dans Go ?
Personnalisation des valeurs par défaut de l'analyse JSON dans Go
Lors de l'analyse de JSON dans Go, l'attribution de valeurs par défaut à des champs qui ne sont pas présents peut améliorer la manipulation des données. Voici comment y parvenir en utilisant le package encoding/json ou en tirant parti d'une bibliothèque Go externe.
Utiliser encoding/json
Le package encoding/json offre une solution simple . Au lieu de transmettre une structure vide à json.Unmarshal, vous pouvez l'initialiser avec les valeurs par défaut. Par exemple :
type Test struct { A string "a" B string "b" C string } example := []byte(`{"A": "1", "C": "3"}`) out := Test{} err := json.Unmarshal(example, &out) if err != nil { panic(err) } fmt.Printf("%+v", out)
Utilisation de bibliothèques externes
Si le package encoding/json ne répond pas entièrement à vos besoins, il existe des bibliothèques Go externes qui fournissent un JSON amélioré fonctionnalité d'analyse. Une option populaire est la bibliothèque go-json, qui vous permet de spécifier des valeurs par défaut pour les champs manquants à l'aide de balises struct.
import ( "encoding/json" "github.com/go-json" ) type Test struct { A string `json:"a,omitempty"` B string `json:"b,omitempty"` C string `json:"c,omitempty"` } example := []byte(`{"A": "1", "C": "3"}`) out := Test{ DefaultA: "a", DefaultB: "b", DefaultC: "c", } err := json.Unmarshal(example, &out) if err != nil { panic(err) } fmt.Printf("%+v", out)
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!