【问题标题】:I am getting "SyntaxError: Unexpected token ' in JSON at position 1" when using JSON.parse我在使用 JSON.parse 时收到“SyntaxError: Unexpected token ' in JSON at position 1”
【发布时间】:2019-07-09 16:29:23
【问题描述】:

我无法访问myView.js 上的列表param = ['foo','bar']

JS 代码将param 视为一个字符串,但是当我尝试JSON.parse(param) 时,我得到如下所示的错误。

我在这里错过了什么?

myView.html:

    <script>
    window.obj = {};
    obj.param = "{{ param | safe }}";
    </script>

views.py:

    def myView(req):
        context = {'param':['foo','bar']}
        return render(req, 'myView.html', context)

myView.js:

$(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'
});

【问题讨论】:

  • json 格式只允许双引号 (token ' in JSON at position 1)
  • 谢谢!如果您发布答案我会接受

标签: javascript python django python-3.x django-templates


【解决方案1】:

json格式只允许双引号(token ' in JSON at position 1),单引号的sting不是有效的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"]');

【讨论】:

    猜你喜欢
    • 2021-09-30
    • 2022-01-04
    • 2019-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-24
    • 2018-07-31
    • 1970-01-01
    相关资源
    最近更新 更多