encoding/json. Сериализация: json.Marshal(v), десериализация: json.Unmarshal(data, &v). Имена полей и опции задаются тегами json:"name".
type User struct {
Name string `json:"name"`
Age int `json:"age,omitempty"`
}
data, _ := json.Marshal(user)
json.Unmarshal(data, &user)