Я выполняю запрос к базе данных, которая у меня есть на сервере. Проблема в том, что когда я пытаюсь декодировать JSON в 2D-фрагмент, я получаю сообщение об ошибке, потому что один из них является строкой, а другой - float64.
Один из способов, с помощью которого я попытался решить эту проблему, - это изменить строку JSON перед тем, как расшифровать ее, добавив кавычки, чтобы сделать число строкой. Но есть ли лучший способ сделать это? Есть ли способ, которым я могу изменить структуру моего кода, где я могу декодировать код JSON?
2018/05/04 12:32:19 json: не может разархивировать число в поле структуры Go. Значения типа string
import (
"fmt"
"encoding/json"
"strings"
"io"
"log"
)
func main(){
str := "{\"results\":[{\"statement_id\":0,\"series\":[{\"name\":\"_\",\"columns\":[\"time\",\"last\"],\"values\":[[\"2018-03-20T18:45:57.07Z\",142774272]]}]}]}"
type Response struct {
Results []struct {
StatementID int `json:"statement_id"`
Series []struct {
Name string `json:"name"`
Columns []string `json:"columns"`
Values [][]string `json:"values"`
} `json:"series"`
} `json:"results"`
}
dec := json.NewDecoder(strings.NewReader(str))
for {
var m Response
if err := dec.Decode(&m); err == io.EOF {
break
} else if err != nil {
log.Fatal(err)
}
fmt.Println(m.Results[0].Series[0].Values[0])
}
}