json.Marshal

Dicas de como usar json.Marshal para converter structs para JSON

Algumas dicas rápidas para usar json.Marshal

  • Os campos da struct que você quer colocar dentro do JSON, ou seja, “fazer o Marshal”, precisam ser declarados com a primeira letra maiúscula tornando esses campos públicos, caso contrário a função Marshal não consegue encontrar os campos.
  • O retorno de json.Marshal é um array de bytes, para converter para string basta fazer cast (forçar a conversão) usando string(nomeDoVetor).
  • É uma boa prática usar os nomes dos campos quando for popular a struct.

Um exemplo de código “fazendo Marshal” de um struct para JSON:

package main

import (
	"encoding/json"
	"fmt"
)

type Bla struct {
	Nome  string
	Idade int
}

func main() {
	jess := Bla{
		Nome:  "temps",
		Idade: 22,
	}
	ret, err := json.Marshal(jess)
	if err != nil {
		fmt.Println("errroouuu")
	}
	fmt.Println(string(ret))
}

Você pode testar esse exemplo no Go Playground


Links úteis