Deserializing json strings with go language : I want to deserialize json strings with the go language. The value types of different keys are different. for example，in string `{\"category\":\"6\",\"cid\":2511993760745787586}`，`category` type is `string`, `cid` type is int64.

my code are as follws:

```go
func main() {
	oriInfo := make([]interface{}, 0)
	pickled := "[{\"category\":\"6\",\"cid\":2511993760745787586},{\"category\":\"5\",\"cid\":2504429915944783937}]"
	err := json.Unmarshal([]byte(pickled), &oriInfo)
	if err != nil {
		fmt.Println(err)
		return
	}
	all := make([]map[string]interface{}, 0, len(oriInfo))
	for _, val := range oriInfo {
		m := make(map[string]interface{})
		for k, v := range val.(map[string]interface{}) {
			switch k {
			case "category":
				m[k] = v.(string)
			case "cid":
				m[k] = int64(v.(float64))
			}
		}
		all = append(all, m)
	}
	fmt.Println(all)
}
```

The results are as follows:   
`[map[category:6 cid:2511993760745787392] map[category:5 cid:2504429915944783872]]`

Obviously， this is not what I want, is there a better way?