I\'m in the infant stages of trying to wrap my mind around Go. At the moment, I\'m simulating an API request that returns a JSON-formatted string containing an array of objects.
The defaults that the json package will decode into when the type isn't declared are:
bool, for JSON booleans
float64, for JSON numbers
string, for JSON strings
[]interface{}, for JSON arrays
map[string]interface{}, for JSON objects
nil for JSON null
Since each record
is (in your example) a json object, you can assert each one as a map[string]interface{}
like so:
for _, record := range view {
log.Printf(" [===>] Record: %s", record)
if rec, ok := record.(map[string]interface{}); ok {
for key, val := range rec {
log.Printf(" [========>] %s = %s", key, val)
}
} else {
fmt.Printf("record not a map[string]interface{}: %v\n", record)
}
}