Я обрабатываю json POST в Go, который содержит массив объектов, содержащих 64-битные целые числа. При использовании json.Unmarshal эти значения, похоже, преобразуются в float64, что не очень полезно.
body := []byte(`{"tags":[{"id":4418489049307132905},{"id":4418489049307132906}]}`)
var dat map[string]interface{}
if err := json.Unmarshal(body, &dat); err != nil {
panic(err)
}
tags := dat["tags"].([]interface{})
for i, tag := range tags {
fmt.Println("tag: ", i, " id: ", tag.(map[string]interface{})["id"].(int64))
}
Есть ли способ сохранить исходный int64 в выводе json.Unmarshal?