在Golang中解析有问题的JSON文件的最佳方法

I have some valid JSON files and some which are not (without the surrounding brackets)

Currently I have a method for each case: one uses json.Unmarshal for the valid ones and the other uses json.NewDecoder for the bracketless ones.

How can I merge it into one function what can handle both cases?

EDIT: Here is the code of the two cases:

func getDrivers() []Drivers {
    raw, err := ioutil.ReadFile("/home/ubuntu/drivers.json")
    if err != nil {
        fmt.Println(err.Error())
        os.Exit(1)
    }

    var d []Drivers
    json.Unmarshal(raw, &d)
    return d
}

func getMetrics() []Metrics {
        file, err := os.Open("/home/ubuntu/metrics.json")
        if err != nil {
           fmt.Println("bad err!")
        }
        r := bufio.NewReader(file)
        dec := json.NewDecoder(r)

        // while the array contains values
        var metrics []Metrics
        for dec.More() {
                var m Metrics
                err := dec.Decode(&m)
                if err != nil {
                        log.Fatal(err)
                }
                metrics = append(metrics, m)
        }
    return metrics
}

Thank you