我需要客户端的对象,所以我使用json.marshal将其转换为JSON并将其打印到模板中。该对象将作为转义的JSON字符串打印。
我希望它是var arr=["o1","o2"]
,但它是var arr="[\"o1\",\"o2\"]"
我知道我可以在客户端使用JSON.parse,但这是唯一的方法吗?
以下是我在模板中打印的方法:
{{ marshal .Arr }}
这是我的元帅功能:
"marshal": func(v interface {}) string {
a, _ := json.Marshal(v)
return string(a)
},
答案 0 :(得分:22)
在JS上下文中,常规字符串总是被转义。我应该在打印前转换为template.JS
类型。
价: http://golang.org/pkg/html/template/#JS
这是新的元帅功能:
"marshal": func(v interface {}) template.JS {
a, _ := json.Marshal(v)
return template.JS(a)
},