If you just need to marshal it, you could just iterate over your map and turn it into a slice.
slc := make([]data.Recommendation)
for _, val := range ureco {
slc = append(out, val)
}
json, _ := json.Marshal(slc)
You can see a simple example with a map[int]string
here: http://play.golang.org/