|
|
- 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)
-
- }
|