我正在读一些JSON数据,使用bitly go-simplejson包来获取我需要的东西并返回一张地图。
然后我将新地图传递给模板。然而,我的模板冻结在我身上,并且从未在地图上成功循环。
我在这里做错了什么?
package main
import (
"fmt"
"os"
"github.com/bitly/go-simplejson"
"text/template"
)
// sample json snippet
const input = `
{
"outterJSON":
{
"innerJSON1":
{
"value1":11,
"value2":22,
"value3":33
}
}
}`
// template
const tmpl = `
Range over map that came from json
{{range $k, $v := .was_json }}
-- {{$k}} : {{$v}}
{{end}}
Code never gets this far.
`
func main() {
js, err := simplejson.NewJson([]byte(input))
if err != nil {
os.Exit(1)
}
// use simplejson because you are going to be processing arbitrary json
output_me := js.Get("outterJSON").Get("innerJSON1").MustMap()
fmt.Printf("\ndump of output_me: \n %+v \n", output_me)
dataMap := struct {
was_json map[string]interface{}
} { output_me }
// Create the new template, parse and add the map
t := template.New("My Template")
t, _ = t.Parse(tmpl)
t.Execute(os.Stdout, dataMap)
}