Package main Import ("Encoding/json" "FMT" "OS") Type configstructstruct{Hoststring' JSON:"Host"' Portint' JSON:"Port"' Analyticsfilestring' JSON:"Analytics_file"' Staticfileversionint' JSON:"static_file_version"' Staticdirstring' JSON:"Static_dir"' TemplatesDirstring' JSON:"Templates_dir"' Sertcpsockethoststring' JSON:"Sertcpsockethost"' Sertcpsocketportint' JSON:"Sertcpsocketport"' Fruits []string' JSON:"Fruits"'} type otherstruct{sertcpsockethoststring' JSON:"Sertcpsockethost"' Sertcpsocketportint' JSON:"Sertcpsocketport"' Fruits []string' JSON:"Fruits"'} func main () {jsonstr:= `{"Host":"http://localhost:9090","Port":9090,"Analytics_file":"","static_file_version":1,"Static_dir":"e:/project/gotest/src/","Templates_dir":"e:/project/gotest/src/templates/","Sertcpsockethost":": 12340","Sertcpsocketport":12340,"Fruits": ["Apple","Peach"]}` //JSON str goto mapvar dat map[string]Interface{} ifERR: = json. Unmarshal ([]byte(JSONSTR), &dat); Err = =Nil {fmt. Println ("==============json str Turn map=======================") fmt. PRINTLN (DAT) fmt. Println (dat["Host"]) } //json str transfer structvar config configstructifERR: = json. Unmarshal ([]byte(JSONSTR), &config); Err = =Nil {fmt. Println ("================json str Turn struct==") fmt. Println (config) fmt. Println (config. Host)}//json str to struct (partial field)var part OtherifERR: = json. Unmarshal ([]byte(JSONSTR), &part); Err = =Nil {fmt. Println ("================json str Turn struct==") fmt. Println (part) FMT. Println (part. Sertcpsocketport)}//struct to JSON str ifB, err: = json. Marshal (config); Err = =Nil {fmt. Println ("================struct to JSON str==") fmt. Println (string(b))}//map to JSON strFmt. Println ("================map to JSON str=====================") ENC:=JSON. Newencoder (OS. Stdout) Enc. Encode (DAT)//array to json strArr: = []string{"Hello","Apple","python","Golang","Base","Peach","Pear"} lang, err:=JSON. Marshal (arr)ifErr = =Nil {fmt. Println ("================array to JSON str==") fmt. Println (string(lang))} //json to []stringvar wo []string ifERR: = json. Unmarshal (lang, &wo); Err = =Nil {fmt. Println ("================json to []string==") fmt. Println (wo)}}