1 package main 2 3 import ( 4 "bytes" 5 "encoding/json" 6 "fmt" 7 ) 8 9 type ColorGroup struct { 10 ID int 11 Name string 12 Colors []string 13 } 14 15 func main() { 16 17 //---------------Marshal 18 group := ColorGroup{ 19 ID: 1, 20 Name: "Reds", 21 Colors: []string{"Crimson", "Red", "Ruby", "Maroon"}, 22 } 23 b, err := json.Marshal(group) 24 if err != nil { 25 fmt.Println("error:", err) 26 } 27 //os.Stdout.Write(b) 28 fmt.Println(string(b[:])) 29 30 //---------------Unmarshal 31 var jsonBlob = []byte(`[ 32 {"ID":1,"Name":"Reds1","Colors":["Crimson","Red1","Ruby1","Maroon1"]}, 33 {"ID":2,"Name":"Reds2","Colors":["Crimson","Red2","Ruby2","Maroon2"]}, 34 {"ID":3,"Name":"Reds3","Colors":["Crimson","Red3","Ruby3","Maroon3"]} 35 ]`) 36 37 var animals []ColorGroup 38 error := json.Unmarshal(jsonBlob, &animals) 39 if error != nil { 40 fmt.Println("error:", error) 41 } 42 43 //fmt.Printf("%+v", animals) 44 //fmt.Println(animals) 45 for i, x := range animals { 46 fmt.Println(i, x) 47 48 } 49 //---------------Indent 50 dst := new(bytes.Buffer) 51 json.Indent(dst, jsonBlob, "##", "**") 52 fmt.Println(dst) 53 }
有疑问加站长微信联系(非本文作者)