Go JSON
The encoding/json package turns structs into JSON and back. Struct tags such as json:"name" control the field names.
ExampleGo
package main
import (
"encoding/json"
"fmt"
)
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
Skills []string `json:"skills"`
}
func main() {
p := Person{"Ada", 36, []string{"math", "code"}}
data, _ := json.Marshal(p)
fmt.Println(string(data))
var back Person
err := json.Unmarshal([]byte(`{"name":"Sam","age":22,"skills":["go"]}`), &back)
fmt.Println(back.Name, back.Age, back.Skills, err)
pretty, _ := json.MarshalIndent(map[string]int{"a": 1}, "", " ")
fmt.Println(string(pretty))
}Output
{"name":"Ada","age":36,"skills":["math","code"]}
Sam 22 [go] <nil>
{
"a": 1
}Quick check
What does the tag json:"name" do?
Finish the quick check (and any code exercise) to complete this lesson, or mark it done yourself.
Tip: use the left and right arrow keys to move between lessons.