我在客户端需要一个对象,因此我使用json.marshal将其转换为JSON并将其打印到模板中。该对象将作为转义的JSON字符串输出。
我期望它是,var arr=["o1","o2"]但事实是var arr="[\"o1\",\"o2\"]"
var arr=["o1","o2"]
var arr="[\"o1\",\"o2\"]"
我知道我可以在客户端进行JSON.parse,但这是唯一的方法吗?
这是我在模板中打印的方式:
{{ marshal .Arr }}
这是我的元帅职能:
"marshal": func(v interface {}) string { a, _ := json.Marshal(v) return string(a) },
在JS上下文中,普通字符串总是被转义。我应该template.JS在打印之前将其转换为类型。
template.JS
参考:http : //golang.org/pkg/html/template/#JS
这是新的元帅功能:
"marshal": func(v interface {}) template.JS { a, _ := json.Marshal(v) return template.JS(a) },