【发布时间】:2015-08-28 10:31:54
【问题描述】:
我有一个小问题!
如何从 json 添加到数组数据并执行模板。简单的。但不工作!
package main
import (
"fmt"
"html/template"
"os"
"encoding/json"
)
type Person struct {
Name string
Jobs []*Job
}
type Job struct {
Employer string
Role string
}
const templ = `The name is {{.Name}}.
{{with .Jobs}}
{{range .}}
An employer is {{.Employer}}
and the role is {{.Role}}
{{end}}
{{end}}
`
func main() {
job1 := Job{Employer: "Monash", Role: "Honorary"}
job2 := Job{Employer: "Box Hill", Role: "Head of HE"}
byt := []byte(`{"num":6.13,"Jobs":[{"Employer": "test1", "Role": "test1"},{"Employer": "test2", "Role": "test2"}]}`)
var dat map[string]interface{}
if err := json.Unmarshal(byt, &dat); err != nil {
panic(err)
}
fmt.Println(dat)
// HOW ADD FROM ARRAY 'dat' TO STRUCT 'Job'
// LINE 54
person := Person{
Name: "jan",
Jobs: []*Job{&job1, &job2},
}
t := template.New("Person template")
t, err := t.Parse(templ)
checkError(err)
err = t.Execute(os.Stdout, person)
checkError(err)
}
func checkError(err error) {
if err != nil {
fmt.Println("Fatal error ", err.Error())
os.Exit(1)
}
}
在这里你可以玩/测试代码:http://play.golang.org/p/AB8hGLrLRy
观察第 46 行。
非常感谢!
【问题讨论】:
-
太棒了!这就是我要的!非常感谢!小问题一点点;)
-
太棒了!这就是我要的!非常感谢!小问题一点点;)当我从文件中读取json时。如果我打印 json 文件:
[{test1 test1}]好的,转换为字节:byt := []byte(config.Social)它键入:cannot convert config.Social (type []struct { Employer string "json:\"url\""; Title string "json:\"Role\"" }) to type []byte -
你想达到什么目的?您想将您的结构编组为字节数组吗?请举个例子