"time"
"encoding"
"strings"
+ "os"
+ "log"
)
type Message struct {
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)
}