Golang : Fix type interface{} has no field or no methods and type assertions example
For new comers to Golang exploring interface{}
for the first time or if you ever use interface{} to handle some arbitrary data, chances are that you will see this error message :
type interface {} has no field or method
or
type interface {} is interface with no methods
To fix this problem, you will need to convert the interface{} to a suitable type or extract the value(variable) with the explicit(correct)type from the interface{} with type assertions.
For example :
// convert the json objects from interface{} to []interface{}
// [] = slice/array type
var jsonObjs interface{}
json.Unmarshal([]byte(jsonStr), &jsonObjs)
objSlice, ok := jsonObjs.([]interface{})
or
// convert invoices to map[string]interface{}
for index, value := range invoices.(map[string]interface{}) {
fmt.Println(index, value)
}
Hope this helps!
References :
https://www.socketloop.com/tutorials/golang-count-json-objects-and-convert-to-slice-array
See also : Golang : Count JSON objects and convert to slice/array
By Adam Ng
IF you gain some knowledge or the information here solved your programming problem. Please consider donating to the less fortunate or some charities that you like. Apart from donation, planting trees, volunteering or reducing your carbon footprint will be great too.
Advertisement
Tutorials
+4.1k Golang : Get FX sentiment from website example
+3.7k Linux : How to set root password in Linux Mint
+30.3k Golang : Copy directory - including sub-directories and files
+9.9k Golang : Proper way to test CIDR membership of an IP 4 or 6 address example
+23.3k Golang : Create PDF file from HTML file
+10.4k Golang : Change date format to yyyy-mm-dd
+6.2k Golang : alternative to os.Exit() function
+6.5k Golang : What fmt.Println() can do and println() cannot do
+8.3k Facebook : Getting the friends list with PHP return JSON format
+18.4k Golang : Reset or rewind io.Reader or io.Writer
+5.9k Linux : How to fix Brother HL-1110 printing blank page problem
+15.2k Golang : Get the IPv4 and IPv6 addresses for a specific network interface