chg(json): Continue..
authorsgf <sgf.dma@gmail.com>
Fri, 16 Dec 2022 16:05:21 +0000 (19:05 +0300)
committersgf <sgf.dma@gmail.com>
Fri, 16 Dec 2022 16:05:21 +0000 (19:05 +0300)
json/json.go

index 3f98ea4..ebc66bb 100644 (file)
@@ -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)
 }