package main import ( "encoding/json" //"github.com/goccy/go-json" "fmt" ) type rpingType struct { NNNN string `json:"nnnn"` TTTT string `json:"tttt"` } type task struct { Name *rpingType `json:"name"` Age int `json:"age"` Hobbies []string `json:"hobbies"` } func main() { input := `[{ "name": {"nnnn":"11111", "tttt":"aaaa" }, "age": 11, "hobbies": ["1111", "11", "111"] },{ "name": {"nnnn":"2222", "tttt":"bbbb" }, "age": 22222, "hobbies": ["222", "222", "2222222"] },{ "name": {"nnnn":"333", "tttt":"ccccccccc" }, "age": 3333, "hobbies": ["33333", "3", "33"] }]` for i:=0 ; i<100 ; i++ { var target []*task err := json.Unmarshal([]byte(input), &target) if err != nil { fmt.Printf("Unable to marshal JSON due to %s", err) } for _, v := range target { fmt.Printf("%v, %v \n", v.Name, v) } fmt.Printf("====== \n") } }