Marshal() recebe um valor como entrada e retorna o JSON codificado como um slice de bytes em caso de sucesso ou um erro se algo der errado.
func Marshal(v interface{}) ([]byte, error)
package main
import (
"fmt"
"encoding/json"
)
type Pessoa struct {
Nome string
Idade int
}
type Livro struct {
Autor Pessoa
func main() {
domQuixote := Livro{
"Dom Quixote",
Pessoa{
"Miguel de Cervantes",
44,
},
res, err := json.Marshal(domQuixote)
if err != nil {
fmt.Println(err)
fmt.Println(string(res))