package main import ( "encoding/json" "fmt" ) var raw_data = `{ "FullName":"Yusuf Turhan Papurcu", "Email":"yusufturhanp@gmail.com", "Items":"cookie", "CreditCardInfo":":)", "CreatedAt":"19/03/22" }` func main() { var gotData emailCover err := json.Unmarshal([]byte(raw_data), &gotData) fmt.Printf("%v\nerr:%s", gotData, err) sendData := emailCover{ FullName: "Yusuf Turhan Papurcu", Email: "yusufturhanp@gmail.com", Items: "cookie", CreditCardInfo: ":)", CreatedAt: "19/03/22", } data_as_byte, err := json.Marshal(sendData) fmt.Printf("%s\nerr:%s", string(data_as_byte), err) } type exampleStruct struct { FullName string Email string Items string CreditCardInfo string CreatedAt string } func getDefaultsexamplestruct() exampleStruct { return exampleStruct{ FullName: "N/A", Email: "N/A", Items: "N/A", CreditCardInfo: "N/A", CreatedAt: "N/A", } } type emailCover exampleStruct func (c *emailCover) UnmarshalJSON(data []byte) error { var a exampleStruct if err := json.Unmarshal(data, &a); err != nil { return err } c.Email = a.Email c.FullName = a.FullName return nil } func (c emailCover) MarshalJSON() ([]byte, error) { a := getDefaultsexamplestruct() a.Email = c.Email a.FullName = c.FullName return json.Marshal(a) }