次のJSONビットがあるので、「トークン」の下の「$ t」値を引き出したいと思います。 Goコードを続行してください...golang:地図内の地図のデータにすばやくアクセスする
{
"@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"
}
}
}
次のコードは、jsonをインターフェイスに非整列化するスニペットです。それから、私は "トークン"の "$ t"値まで下がって行きます。このアプローチはうまくいくが、醜い。
私の質問:各マップをインターフェースに変換するよりも、その値にアクセスする方が速いのですか?私は非常に新しく、インターフェイスやマップの便利な機能の多くを認識していません。
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)
ありがとうございます!
を見ます。両方のバージョンを含めてくれてありがとう。 – turnerd18
ようこそ。 –