package main

import (
	"encoding/json"
	"fmt"
)

type Person struct {
	Name  string
	Addr  string
	Phone string
}

func main() {

	p1 := Person{Name: "Drew", Addr: "123 Fake Street", Phone: "8675309"}
	byte_array, err := json.Marshal(p1) // returns json as a slice of bytes []bytes
	if err != nil {
		fmt.Println("Damn it")
	}
	fmt.Println(byte_array)
	fmt.Println(p1)

	// Unmarshaling going from a json byte array to a to a go object
	p2 := Person{}
	err = json.Unmarshal(byte_array, &p2) // will throw an error if the byte array doesn't fit the struct
	if err != nil {
		fmt.Println("Damn it")
	}

	fmt.Println(p2)
}