From: sgf Date: Fri, 16 Dec 2022 16:05:21 +0000 (+0300) Subject: chg(json): Continue.. X-Git-Url: https://gitweb.sgf-dma.tk/?a=commitdiff_plain;h=043bb46c1898ebb91ad43c4068ae9bfa3a5ec803;p=go.git chg(json): Continue.. --- 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) }