【发布时间】:2015-04-04 11:35:29
【问题描述】:
我有一个 json 文档,我正在使用一个客户端,它在接口(而不是结构)中解码文档,如下所示:
var jsonR interface{}
err = json.Unmarshal(res, &jsonR)
如何访问界面字段?我已经阅读了 go doc 和 blog,但我的头脑仍然无法理解。他们的示例似乎仅表明您可以在接口中解码 json,但没有解释如何使用其字段。
我尝试使用范围循环,但当我到达 map[string] 界面时,故事似乎就结束了。我需要的字段似乎在界面中。
for k, v := range jsonR {
if k == "topfield" {
fmt.Printf("k is %v, v is %v", k, v)
}
}
【问题讨论】:
-
你能问一个更具体的问题吗?很难准确说出你想知道什么。
-
可以使用json.RawMessage来实现延迟JSON解码。 golang.org/pkg/encoding/json/#RawMessage