小编tur*_*d18的帖子

golang:快速访问地图中的地图数据

所以我有以下一点JSON,我想在"令牌"下拉出"$ t"值.继续Go代码......

{
  "@encoding": "iso-8859-1",
  "@version": "1.0",
  "service": {
    "auth": {
      "expiresString": {
        "$t": "2013-06-12T01:15:28Z"
      },
      "token": {
        "$t": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
      },
      "expires": {
        "$t": "1370999728"
      },
      "key": {
        "$t": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
      }
    }
}
Run Code Online (Sandbox Code Playgroud)

我有以下Go代码片段,将json解组为接口.然后我向下工作到"令牌"的"$ t"值.这种方法确实有效,但它很难看.

我的问题:有没有比通过将每个地图转换为界面更快的方式来访问该值? 我是Go的新手,并不了解接口和地图的许多有用功能.

var f interface{}
jerr := json.Unmarshal(body, &f)
m := f.(map[string]interface{})
ser := m["service"].(map[string]interface{})
a := ser["auth"].(map[string]interface{})
tok := a["token"].(map[string]interface{})
token := tok["$t"]
fmt.Fprintf(w, "Token: %v\n", token)
Run Code Online (Sandbox Code Playgroud)

提前致谢!

json go

8
推荐指数
2
解决办法
2794
查看次数

标签 统计

go ×1

json ×1