Skip to content

Instantly share code, notes, and snippets.

@yusufpapurcu
Created March 19, 2022 14:16
Show Gist options
  • Save yusufpapurcu/489d652f22fd90bea35c16bf8f908f52 to your computer and use it in GitHub Desktop.
Save yusufpapurcu/489d652f22fd90bea35c16bf8f908f52 to your computer and use it in GitHub Desktop.
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)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment