Exercises & activities from the go workshop provided by Packt: https://courses.packtpub.com/courses/go
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

65 lines
946 B

package main
import (
"encoding/json"
"fmt"
"io"
"os"
"strings"
)
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
}
func loadPerson2(s string) (Person, error) {
var p Person
err := json.NewDecoder(strings.NewReader(s)).Decode(&p)
if err != nil {
return p, err
}
return p, nil
}
func loadPerson(r io.Reader) (Person, error) {
var p Person
err := json.NewDecoder(r).Decode(&p)
if err != nil {
return p, err
}
return p, nil
}
func main() {
s := `{"Name":"Joe","Age":18}`
s2 := `{"Name":"Jane","Age":21}`
p, err := loadPerson(strings.NewReader(s))
if err != nil {
fmt.Println(err)
}
fmt.Println(p)
p2, err := loadPerson2(s2)
if err != nil {
fmt.Println(err)
}
fmt.Println(p2)
f, err := os.Open("data.json")
if err != nil {
fmt.Println(err)
}
p3, err := loadPerson(f)
if err != nil {
fmt.Println(err)
}
fmt.Println(p3)
}