2014-09-09 3 views
1

Python으로 JSON 문자열을 JS 변수로 내보내려고합니다. 내가 dataJSON의 내용을 인쇄 할 경우Python에서 JSON을 내보내는 방법

<script type="text/javascript"> 
    var data = JSON.parse('{{ dataJSON }}'); 
    console.log(data) 
</script> 

내가 얻을 : http://jinja.pocoo.org/docs/dev/templates/#if

는 어떻게 해결할 수 : JSON.parse('[{&#34;offset&#34;:0,&#34;total&#34;:1,&#34;units&#34;:[{&#34;village_id&#34;:37

내가 jinja2 템플릿 엔진을 사용

그러나 JS에서 [{"offset":0,"total":1,"units":[{"village_id":37,"village_name":"Glim 내가이 얻을 그?

+0

사용중인 템플릿 언어는 무엇입니까? 장고, 진자 2, 다른 것? –

+0

'jinja2' http://jinja.pocoo.org/docs/dev/templates/#if – Vadorequest

답변

5

당신은 안전으로 데이터를 표시해야합니다

var data = {{ dataJSON|safe }}; 

이 HTML 이스케이프되는 것을 방지 할 수 있습니다. 이 방법으로 JSON.parse()을 사용할 필요가 없습니다. JSON은 유효한 자바 스크립트 하위 집합입니다 (최소한 Python json 모듈이 올바른 하위 집합을 생성하기 만하면됩니다).

은 입니다. JSON 직렬화를 조정할 수 있습니다. 당신이 플라스크를 사용하지 않는 경우

var data = {{ data|tojson|safe }}; 

, 포스트 프로세스 JSON : 이것은

dataJSON = (json.dumps(data) 
    .replace(u'<', u'\\u003c') 
    .replace(u'>', u'\\u003e') 
    .replace(u'&', u'\\u0026') 
    .replace(u"'", u'\\u0027')) 

당신이 플라스크를 사용하는 경우 tojson 필터를 사용하면 자바 스크립트 안전 유효한 JSON을 얻을 보장이 제공됩니다 Python 코드를 사용하여 HTML (특성 값 포함) 및 JavaScript에서 안전하게 사용할 수있는 dataJSON 값을 생성합니다. 여기 신용은 Flask json.htmlsafe_dumps() function입니다.

관련 문제