使用接口解组json数据时出错?

I'm retrieving the data from database and using Jquery stringify the same data. Now I want to unmarshall that data. Data is as below:

values = [{"day":"Sunday","time_slug":1,"timing":"8:00 am - 9:00 am","count":"1"},
  {"day":"Sunday","time_slug":2,"timing":"10:00 am - 11:00 am","count":"1"}]

Code I'm using:

func SaveProviderSpot(c *gin.Context) {
 //values := c.PostForm("array")
 byt := []byte(values)
 var dat map[string]interface{}
 if err := json.Unmarshal(byt, &dat); err != nil {
     panic(err)
  }
  fmt.Println(dat)
}

From Golang spec for Json unmarshal to interface{}:

To unmarshal JSON into an interface value, Unmarshal stores one of these in the interface value:

bool, for JSON booleans
float64, for JSON numbers
string, for JSON strings
[]interface{}, for JSON arrays // slice of interface{}
map[string]interface{}, for JSON objects
nil for JSON null

Because the json that you are trying to unmarshal is an array so either use slice of interface{} as mentioned in Golang spec or slice of map[string]interface{} not map[string]interface{}. That's why returning an error. Change your variable declaration as

package main

import (
    "fmt"
    "encoding/json"
)

func main() {
    bytes := []byte(`[{"day":"Sunday","time_slug":1,"timing":"8:00 am - 9:00 am","count":"1"},
  {"day":"Sunday","time_slug":2,"timing":"10:00 am - 11:00 am","count":"1"}]`)  
    var result []interface{}
    if err := json.Unmarshal(bytes, &result); err != nil{
        fmt.Println(err)
    }
    fmt.Println(result)
}

Working code on Go playground

Edited: you can also go for using structs if you know your json structure.

package main

import (
    "fmt"
    "encoding/json"
)

type ResultData []struct {
    Day      string `json:"day"`
    TimeSlug int    `json:"time_slug"`
    Timing   string `json:"timing"`
    Count    string `json:"count"`
}

func main() {
    bytes := []byte(`[{"day":"Sunday","time_slug":1,"timing":"8:00 am - 9:00 am","count":"1"},
  {"day":"Sunday","time_slug":2,"timing":"10:00 am - 11:00 am","count":"1"}]`)  
    var result ResultData
    if err := json.Unmarshal(bytes, &result); err != nil{
        fmt.Println(err)
    }
    fmt.Println(result)
}

Playground Example

Because you are trying to unmarshall an array into a map.

The easiest fix is to unmarshall into an array of maps

var dat []map[string]interface{}