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.