我应该如何在golang中使用类型map[string]interface {}

dldeef67  于 2023-04-09  发布在  Go
关注(0)|答案(1)|浏览(208)

我正在尝试从API中检索数据。当我从api中获取数据时:

result, _ := s.GetCases() // get cases via api
fmt.Println(reflect.TypeOf(result.Records[0]["Cases"]))

显示结果的类型,记录[0][“案例”]是map[string]interface {}
然而,显然我不能直接使用这个作为Map。因为:

fmt.Println(reflect.TypeOf(result.Records[0]["Cases"]["Id"]))

这将导致编译器错误:
无效操作:无法为结果编制索引。记录[0][“案例”](Map接口{}类型的索引表达式)
我可以知道我应该如何使用这种类型的golang?

7bsow1i6

7bsow1i61#

该值的类型为interface{},根据反射的输出,该接口中有一个map[string]interface{}值。因此,您必须使用类型Assert来获取存储在接口中的实际值:

fmt.Println(reflect.TypeOf(result.Records[0]["Cases"].(map[string]interface{})["Id"]))

相关问题