我在访问param = ['foo','bar']
上的列表myView.js
时遇到问题。
JS代码将param
当作一个字符串对待,但是当我尝试JSON.parse(param)
时,我得到了如下所示的错误。
我在这里想念什么?
<script>
window.obj = {};
obj.param = "{{ param | safe }}";
</script>
def myView(req):
context = {'param':['foo','bar']}
return render(req, 'myView.html', context)
$(document).ready(function() {
console.log(window.obj.param); //prints ['foo','bar']
console.log(window.obj.param[0]); //prints [
console.log(JSON.parse(window.obj.param)); // Uncaught SyntaxError: Unexpected token ' in JSON at position 1
//what I need to happen
console.log(param[0]); // prints 'foo'
});
答案 0 :(得分:1)
json格式仅允许双引号(token ' in JSON at position 1
),单引号的字符串不是有效的json格式,因此,如果您尝试对其进行解析,则会出现错误,如此处所示
function safeParse(param){
try {
console.log(JSON.parse(param))
} catch (e) {
console.log("there was an issue with parsing your string")
}
}
safeParse("['foo','bar']");
safeParse('["foo","bar"]');