This is a creation in Article, where the information may have evolved or changed.
Package Main
Import (
"Encoding/json"
"FMT"
)
Type Student struct {
Name string
Age int
guake BOOL
Classes []string
Price float32
}
Func (S *student) Showstu () {
Fmt. Println ("Show Student:")
Fmt. Println ("\tname\t:", S.name)
Fmt. Println ("\tage\t:", S.age)
Fmt. Println ("\tguake\t:", S.guake)
Fmt. Println ("\tprice\t:", S.Price)
Fmt. Printf ("\tclasses\t:")
For _, A: = Range s.classes {
Fmt. Printf ("%s", a)
}
Fmt. Println ("")
}
Func Main () {
ST: = &student{
"Xiao Ming",
16,
True
[]string{"Math", "中文版", "Chinese"},
9.99,
}
Fmt. Println ("Before JSON Encoding:")
St. Showstu ()
B, err: = json. Marshal (ST)
If err! = Nil {
Fmt. PRINTLN ("Encoding Faild")
} else {
Fmt. PRINTLN ("Encoded data:")
Fmt. Println (b)
}
CH: = Make (chan string, 1)
Go func (C chan string, str string) {
C <-Str
} (ch, string (b))
Strdata: = <-ch
Fmt. Println ("--------------------------------")
STB: = &student{}
StB. Showstu ()
Err = json. Unmarshal ([]byte (Strdata), &STB)
If err! = Nil {
Fmt. Println ("Unmarshal faild")
} else {
Fmt. Println ("Unmarshal success")
StB. Showstu ()
}
}
361 Reads