interface{}转换类型map数组
时间: 2023-07-30 14:12:57 浏览: 55
将 `interface{}` 转换为 `map` 数组类型,需要先将 `interface{}` 转换为 `[]interface{}` 类型,然后遍历数组中的每个元素,将其转换为 `map[string]interface{}` 类型。具体实现如下:
```go
var i interface{} = []map[string]interface{}{
{"name": "Alice", "age": 20},
{"name": "Bob", "age": 25},
}
arr, ok := i.([]interface{})
if ok {
for _, v := range arr {
m, ok := v.(map[string]interface{})
if ok {
fmt.Printf("map: %v\n", m)
} else {
fmt.Printf("not a map\n")
}
}
} else {
fmt.Printf("not an array\n")
}
```
在上述示例中,我们将 `interface{}` 变量 `i` 转换为 `[]map[string]interface{}` 类型。首先使用类型断言判断 `i` 是否为 `[]interface{}` 类型,如果是,则遍历数组中的每个元素,将其转换为 `map[string]interface{}` 类型,并输出结果;否则转换失败,输出 "not an array"。
需要注意的是,在使用类型断言之前,需要先判断 `interface{}` 变量是否为 `nil`,否则会发生 panic。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)