Я полагаю, что ваш массив записей генерируется примерно так: драйвер вашей базы данных:
record := make([]interface{}, 0, 10)
dec := json.NewDecoder(strings.NewReader(`["2018-12-20T07:26:23Z", 90, 123.2132, 12.3232, 30, 1, "user"]`))
dec.UseNumber()
dec.Decode(&record)
Все числа генерируются как json.Number
вместо float64
.Поскольку json.Number
поддерживает простое преобразование в строку, вы можете использовать этот интерфейс вместе с простым переключателем типа , чтобы сделать это:
s := make([]string, len(record))
for i, v := range record {
switch val := v.(type) {
case string:
s[i] = val
case json.Number:
s[i] = val.String()
default:
panic(fmt.Sprintf("unhandled type: %T", v))
}
}
См. Это в действии: https://play.golang.org/p/jD_z94vQ7Wt