這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
1 package main 2 3 import ( 4 "bytes" 5 "encoding/json" 6 "fmt" 7 ) 8 9 type ColorGroup struct {10 ID int11 Name string12 Colors []string13 }14 15 func main() {16 17 //---------------Marshal18 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 //---------------Unmarshal31 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 []ColorGroup38 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 //---------------Indent50 dst := new(bytes.Buffer)51 json.Indent(dst, jsonBlob, "##", "**")52 fmt.Println(dst)53 }