This is a creation in Article, where the information may have evolved or changed.
The Encoding/json package in Go is designed to handle JSON
Import("Encoding/json" "FMT" "OS")typeResponse1struct{PageintFruits []string}typeResponse2struct{Pageint ' JSON: ' page 'Fruits []string ' JSON: ' Fruits '}funcMain () {FMT. Println ("Start Main func ()")//single common type of processingBolb, _: = json. Marshal (true) FMT. Println (string(Bolb)) IntB, _: = json. Marshal(1) FMT. Println (string(IntB)) FLTB, _: = json. Marshal(2.34) FMT. Println (string(FLTB)) StrB, _: = json. Marshal ("Gopher") FMT. Println (string(StrB)) SLCD: = []string{"Apple","Peach","Pear"} SLCB, _: = json. Marshal (SLCD) fmt. Println (string(SLCB)) MAPD: =Map[string]int{"Apple":5,"Lettuce":7} MAPB, _: = json. Marshal (MAPD) fmt. Println (string(MAPB))//Processing of structsRES1D: = &response1{Page:1, Fruits: []string{"Apple","Peach","Pear"}} res1b, _: = json. Marshal (RES1D) fmt. Println (string(RES1B)) Res2d: = &response2{Page:1, Fruits: []string{"Apple","Peach","Pear"}} res2b, _: = json. Marshal (res2d) fmt. Println (string(RES2B)) BYT: = []byte(' {' num ': 6.13, ' STRs ': ["A", "B"]} ')varDatMap[string]Interface{}ifERR: = json. Unmarshal (byt, &dat); Err! =Nil{Panic(ERR)} Fmt. PRINTLN (DAT) fmt. Println (dat["num"]) num: = dat["num"]. (float64) FMT. PRINTLN (num) STRs: = dat["STRs"]. ([]Interface{}) Str1: = STRs[0]. (string) FMT. Println (STR1)//json = structSTR: =' {"page": 1, "fruits": ["apple", "Peach"]} 'Res: = response2{} json. Unmarshal ([]byte(str), &res) fmt. Println (res) FMT. Println (Res. Fruits[0]) ENC: = json. Newencoder (OS. Stdout) D: =Map[string]int{"Apple":5,"Lettuce":7} enc. Encode (d) ares2d: = &response2{Page:1, Fruits: []string{"Apple","Peach","Pear"}} ares2b, _: = json. Marshalindent (ares2d,"a","B") FMT. Println (string(ARES2B))}