【发布时间】:2017-11-26 15:49:37
【问题描述】:
我在 Golang 工作,使用包 github.com/bitly/go-simplejson
我将从客户端收到一个 Json,我已经使用该包构建了 json 对象。现在我需要遍历该 Json 的所有“第一级”元素。 Json 是这样的:
{"Name":"demo2","Creator":"some creator","URL":"www.url.com","GACode":"UA-xxxx"}
我的代码是:
body, _ := ioutil.ReadAll(req.Body)
settings,_ := simplejson.NewJson(body)
fmt.Printf("\nJson: %+v",settings)
for k, v := range settings.MustArray() {
fmt.Println("\n k:",k)
fmt.Println("\n v:",v)
}
当我打印收到的 Json 时:
Json: &{data:map[Name:demo2 Creator:some creator URL:www.url.com GACode:UA-xxxx]}
循环没有给我任何东西,MustArray() 给了我一个空数组。该 Json 的键非常动态,所以我不能像 .Get("TheKey") 那样做一些事情,因为我不知道 json 中可能出现的键的名称。
那么,我怎样才能遍历那个 Json?我对那个 Json 的第一级循环更感兴趣。
【问题讨论】:
-
在 Go 中,您可以像遍历数组一样遍历地图,而不是
index, value组合,您将从:= range map获得key, value。