если у вас есть ключ, который не исправлен, вы можете использовать только интерфейс {}, который необходимо демаршалировать json в []interface{}
и использовать утверждение типа в map[string]interface{}
var body []interface{}
_ = json.Unmarshal([]byte(json2), &body)
fmt.Printf("Unmarshaled: %v\n", body)
// range through array interface[]
for _, opt := range body {
// assert interface{} to map[string]interface{}
if item, ok := opt.(map[string]interface{}); ok {
for v, opt := range item {
fmt.Printf("[%s] key -> %s value -> %s\n", v, opt, "fake")
}
}
}
полный код на основе вашего примера https://play.golang.org/p/PepxOVlB7u4