json package allows to easily implement encoding and decoding of JSON in Go langauge.
Let's start with a Go struct
type Config struct {
RepoName string `json:"repository_name"`
Domains []string `json:"domains"`
Env string `json:"env"`
}Create an instance of Config
config := Config{"foo",
[]string{"bar.com", "baz.com"},
"FOO=l\nBAR=69"}Finally, marshal config instance using json.Marshal function.
r, err := json.Marshal(config)The result is a []byte, let's display it
fmt.Println(string(r))Decoding is similar, but it uses json.Unmarshal function. Create another
Config variable which will be used to store the result of decoding.
var c2 Config
err := json.Unmarshal(r, &c2)For a more in depth introduction to the subject check JSON and Go article.