From 043bb46c1898ebb91ad43c4068ae9bfa3a5ec803 Mon Sep 17 00:00:00 2001 From: sgf Date: Fri, 16 Dec 2022 19:05:21 +0300 Subject: [PATCH] chg(json): Continue.. --- json/json.go | 35 +++++++++++++++++++++++++++++++---- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/json/json.go b/json/json.go index 3f98ea4..ebc66bb 100644 --- a/json/json.go +++ b/json/json.go @@ -7,6 +7,8 @@ import ( "time" "encoding" "strings" + "os" + "log" ) type Message struct { @@ -69,16 +71,41 @@ func main() { b, err := json.Marshal(m0) if err != nil { - fmt.Println("Error", err) - return + log.Fatal(err) } fmt.Printf("json = %v\n", string(b)) var m1 Message err = json.Unmarshal(b, &m1) if err != nil { - fmt.Println("Error", err) - return + log.Fatal(err) } fmt.Printf("m1 = %#v\n", m1) + + fmt.Println("Run decoder") + fi, err := os.Open("json.txt") + if err != nil { + log.Fatal(err) + } + + dec := json.NewDecoder(fi) + t, err := dec.Token() + if err != nil { + log.Fatal(err) + } + fmt.Printf("%T: %v\n", t, t) + + var m2 Message + for dec.More() { + if err = dec.Decode(&m2); err != nil { + log.Fatal(err) + } + fmt.Printf("m2 = %#v\n", m2) + } + + t, err = dec.Token() + if err != nil { + log.Fatal(err) + } + fmt.Printf("%T: %v\n", t, t) } -- 2.20.1