在Go

时间:2017-07-06 11:02:48

标签: go

我正在读一些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)
}

0 个答案:

没有答案