Encode / Decode JSON in Go


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"},

Finally, marshal config instance using json.Marshal function.

r, err := json.Marshal(config)

The result is a []byte, let's display it


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.