一尘不染

如何从地图中获取价值

go

问题

从地图中获取数据

资料格式

res = map[Event_dtmReleaseDate:2009-09-15 00:00:00 +0000 +00:00 Trans_strGuestList:<nil> strID:TSTB]

注意

如何从上述结果中获得以下值

1.Event_dtmReleaseDate

2.strID

3.Trans_strGuestList

我试过的

  1. res.Map(“ Event_dtmReleaseDate”);

错误:res.Map未定义(类型map [string] interface {}没有字段或方法Map)

  1. res.Event_dtmReleaseDate;

错误:v.id未定义(类型map [string] interface {}没有字段或方法ID)


阅读 227

收藏
2020-07-02

共1个答案

一尘不染

您的变量是a map[string]interface {},表示键是字符串,但值可以是任何值。通常,访问此方法的方式是:

mvVar := myMap[key].(VariableType)

或在字符串值的情况下:

id  := res["strID"].(string)

请注意,如果类型不正确或映射中不存在键,这将引起恐慌,但是我建议您阅读更多有关Go映射和类型断言的信息。

在此处阅读有关地图的信息:http :
//golang.org/doc/effective_go.html#maps

有关类型声明和接口转换的信息,请参见:http
:
//golang.org/doc/effective_go.html#interface_conversions

避免出现恐慌的安全方法是这样的:

var id string
var ok bool
if x, found := res["strID"]; found {
     if id, ok = x.(string); !ok {
        //do whatever you want to handle errors - this means this wasn't a string
     }
} else {
   //handle error - the map didn't contain this key
}
2020-07-02