json:无法将数组解组为main.Data类型的Go值

Json is -

    {
"apiAddr":"abc",
"data":
    [
        {
        "key":"uid1",
        "name":"test",
        "commandList":["dummy cmd"],
        "frequency":"1",
        "deviceList":["dev1"],
        "lastUpdatedBy": "user",
        "status":"Do something"
        }
]

}

And the code to unmarshall is -

   type Data struct {
    APIAddr string             `json:"apiAddr"`
    Data    []Template         `json:"data"`
   }

    type Template struct {
   Key           string   `json:"key"`
   Name          string   `json:"name"`
   CommandList   []string `json:"commandList"`
   Frequency     string   `json:"frequency"`
   DeviceList    []string `json:"deviceList"`
   LastUpdatedBy string   `json:"lastUpdatedBy"`
   Status        string   `json:"status"`
}
   raw, err := ioutil.ReadFile(*testFile)
      if err != nil {
        return
    }
    var testTemplates Data
    err = json.Unmarshal(raw, &testTemplates)
    if err != nil {
        return
    }

where testFile is the json file. I am getting this error

json: cannot unmarshal array into Go value of type main.Data.

Looking at the existing questions in stackoverflow, looks like I am doing all right.Anyone?

Made a few modification and Unmarshaling worked just fine.

package main

import (
    "encoding/json"
    "fmt"
)

var raw = `   {
"apiAddr":"abc",
"data":
    [
        {
        "key":"uid1",
        "name":"test",
        "commandList":["dummy cmd"],
        "frequency":"1",
        "deviceList":["dev1"],
        "lastUpdatedBy": "user",
        "status":"Do something"
        }
]
}`

func main() {
    var testTemplates Data
    err := json.Unmarshal([]byte(raw), &testTemplates)
    if err != nil {
        return
    }
    fmt.Println("Hello, playground", testTemplates)
}

type Data struct {
    APIAddr string     `json:"apiAddr"`
    Data    []Template `json:"data"`
}

type Template struct {
    Key           string   `json:"key"`
    Name          string   `json:"name"`
    CommandList   []string `json:"commandList"`
    Frequency     string   `json:"frequency"`
    DeviceList    []string `json:"deviceList"`
    LastUpdatedBy string   `json:"lastUpdatedBy"`
    Status        string   `json:"status"`
}

You can run it in Playground as well: https://play.golang.org/p/TSmUnFYO97-