package main import ( "encoding/json" "fmt" ) /* It is defined to be the sequence of the structure Properties must be visible, otherwise you can not access the json package */ type Person struct { Name string Age int Rmb float64 Gender bool Hobbies []string } func NewPerson(name string,age int,rmb float64,gender bool,hobbies []string) *Person { person :=new(Person) person.Name = name person.Age = age person.Rmb = rmb person.Gender = gender person.Hobbies = hobbies return person } /* init function will be called before the main function of the system init function is used before the main work */ each person * Personal func init() { fmt.Println("init") person = NewPerson ( "Zhang whole egg", 20, 0.5, true, [] string { "smoke", "drink", "hot head"}) fmt.Println(person) } / * * Serialization structure / main041 function () { fmt.Println("main") bytes, err := json.Marshal(*person) if err != nil{ fmt.Println ( "failed serialization err =", err) return } fmt.Println(string(bytes)) } / * Serialization Map * / main042 function () { dataMap := make(map[string]interface{}) dataMap [ "Name"] = "Zhang whole egg" dataMap["Age"] = "20" dataMap["rmb"] = "0.5" dataMap["gender"] = true dataMap [ "hobbies"] = [] string { "smoke", "drink", "hot head"} fmt.Println("main") bytes, err := json.Marshal(dataMap) if err != nil{ fmt.Println ( "failed serialization err =", err) return } fmt.Println(string(bytes)) } / * The sequence of the slice (the Map built-in) * / func main043() { dataMap := make(map[string]interface{}) dataMap [ "Name"] = "Zhang whole egg" dataMap["Age"] = "20" dataMap["rmb"] = "0.5" dataMap["gender"] = true dataMap [ "hobbies"] = [] string { "smoke", "drink", "hot head"} dataMap2 := make(map[string]interface{}) dataMap2["Name"] = "张lia蛋" dataMap2["Age"] = "20" dataMap2["rmb"] = "0.5" dataMap2["gender"] = true dataMap2 [ "hobbies"] = [] string { "smoke", "drink", "hot head"} dataSlice := make([]map[string]interface{}, 0) dataSlice = append (dataSlice, dataMap, dataMap2) fmt.Println("main") bytes, err := json.Marshal(dataSlice) if err != nil{ fmt.Println ( "failed serialization err =", err) return } fmt.Println(string(bytes)) } / * Sequence of sections (structure built objects) * / func main() { person1: = * NewPerson ( "Zhang whole egg", 20, 0.5, true, [] string { "smoke", "drink", "hot head"}) person2: = * NewPerson ( "Zhang two eggs", 10, 0.5, true, [] string { "smoke", "drink", "hot head"}) dataSlice := make([]Person, 0) dataSlice = append(dataSlice, person1, person2) fmt.Println("main") bytes, err := json.Marshal(dataSlice) if err != nil{ fmt.Println ( "failed serialization err =", err) return } fmt.Println(string(bytes)) }