2014-01-31 1 views
9

클라이언트 측에서 객체가 필요하므로 json.marshal을 사용하여 JSON으로 변환하고 템플릿에 인쇄했습니다. 개체가 이스케이프 처리 된 JSON 문자열로 인쇄됩니다.golang 템플릿에 JSON을 인쇄하는 방법은 무엇입니까?

가 나는 var arr=["o1","o2"] 것으로 기대하고있어하지만 난 클라이언트 측 JSON.parse을 할 수있는 알고 var arr="[\"o1\",\"o2\"]"

이지만, 유일한 방법이다? 여기

내가 템플릿을 인쇄하고 있습니다 방법입니다 항상 탈출됩니다 JS 컨텍스트 일반 문자열에서

"marshal": func(v interface {}) string { 
    a, _ := json.Marshal(v) 
    return string(a) 
}, 

답변

16

:

{{ marshal .Arr }}

여기 내 원수의 기능입니다. 인쇄하기 전에 template.JS 유형으로 변환 했어야합니다.

참조 : http://golang.org/pkg/html/template/#JS

이 새로운 원수 함수이다

"marshal": func(v interface {}) template.JS { 
    a, _ := json.Marshal(v) 
    return template.JS(a) 
}, 
+0

더 이해할 작은'encodedValue = json.Marshal (complexValue); replaceableValue : = template.JS (encodedValue)' –