该函数返回一个包含多个键值对的map。然后,在主函数中,我们调用getValues函数,并检查是否有错误发生。 如果没有错误,则将返回值(values)转换为map[string]interface{}类型,并将其赋值给MyStruct.Data字段。最后,我们可以通过s.Data[“name”].(string)这样的方式访问Data字段中的某个键,并将其转换为字符串类型。
func main() {//创建动物名到结构体实例的字典animals :=map[string]interface{}{"bird":new(bird),//创建出的结构体实例"pig":new(pig), }//遍历字典forname, obj := range animals {//obj为字典的值,是interface{}类型f, isFlyer := obj.(Flyer)//使用类型断言获得变量f,转换后的类型是Flyer;isF...
golang map 和 interface 的一些记录 golang的map读取是不需要判断key是否存在的,不存在的key会返回默认值。 如果map的value是interface,那么interface是需要先进行类型转换的,非要求类型的转换,得到结果是nil。 packagemainimport"fmt"varmmap[string]interface{}funcgetStr(kstring)string{ v, ok := m[k].(stri...
//自动转map fmt.Println(i) //4.使用interface的json,可以判断类型 m := i.(map[string]interface{}) for k, v := range m { switch value := v.(type) { case nil: fmt.Println(k, "is nil", "null") case string: fmt.Println(k, "is string", value) case int: fmt.Println(k, "...
先将map转换成JSON,再通过 JSON 转换成struct 操作有点繁琐 func TestMapToStructByJson(t *testing.T) { beforeMap := map[string]interface {}{ "id":"123", "user_name":"酒窝猪", "address":[]map[string]interface{}{{"address": "address01"}, {"address": "address02"}}, ...
1.//json str 转map var dat map[string]interface{} err := json.Unmarshal([]byte(jsonStr), &dat) 2.//json str 转struct var config ConfigStruct if err := json.Unmarshal([]byte(jsonStr), &config); 3.//struct 到json str b, err := json.Marshal(config); 4.//map 到json str var...
先将map 转换成 JSON,再通过 JSON 转换成 struct 操作有点繁琐 func TestMapToStructByJson(t *testing.T) { beforeMap := map[string]interface {}{ "id":"123", "user_name":"酒窝猪", "address":[]map[string]interface{}{{"address": "address01"}, {"address": "address02"}}, } var af...
golang 将interface{}转换成map方便读取 interface{}读取非常不方便,将其转换成map类型后就可以读取了 #res是个interface{} res.(map[string]interface{})
var src []map[string]string var dest []map[string]interface{} for i := range src { m := src[i]n := make(map[string]interface{})for k,v := range m { n[k] = interface{}(v)} dest = append(dest, n)}