GetString safely extracts a string from a nested map path. Usage: GetString(data, "user", "name") is equivalent to data["user"].(map[string]interface{})["name"].(string)
(m map[string]interface{}, keys ...string)
| 9 | // Usage: GetString(data, "user", "name") is equivalent to |
| 10 | // data["user"].(map[string]interface{})["name"].(string) |
| 11 | func GetString(m map[string]interface{}, keys ...string) string { |
| 12 | if len(keys) == 0 { |
| 13 | return "" |
| 14 | } |
| 15 | v := navigate(m, keys[:len(keys)-1]) |
| 16 | if v == nil { |
| 17 | return "" |
| 18 | } |
| 19 | s, _ := v[keys[len(keys)-1]].(string) |
| 20 | return s |
| 21 | } |
| 22 | |
| 23 | // GetFloat safely extracts a float64 (the default JSON number type). |
| 24 | func GetFloat(m map[string]interface{}, keys ...string) float64 { |