json.parse 给出 Uncaught SyntaxError: Unexpected Token (Django json serialized queryset)

Posted

技术标签:

【中文标题】json.parse 给出 Uncaught SyntaxError: Unexpected Token (Django json serialized queryset)【英文标题】:json.parse gives Uncaught SyntaxError: Unexpected Token (Django json serialized queryset) 【发布时间】:2011-11-30 18:28:40 【问题描述】:

我在尝试解析 json 数据时遇到错误 Uncaught SyntaxError: Unexpected Token

这是我的 ajax 代码(json2.js):

       $.ajax(
            type: 'POST',
            url: '/best_choose/invoice/item_search.json/',
            data: jsonQuery,
            dataType: 'json',
            contentType: 'application/json; charset=utf-8',

            success: function(data)
                    var parsed = JSON.parse(data);
                    //do stuff
             );

我的看法:

    json_serializer = serializers.get_serializer('json')()
    serialized_q = json_serializer.serialize(queryset, ensure_ascii=False)

    return HttpResponse(
                serialized_q, mimetype='application/json'
            )

来自 debug serialized_q 是一个包含有效 json u'valid_json' 的 unicode 字符串

【问题讨论】:

【参考方案1】:

当您将dataType 设置为json 时,jQuery 会为您解析数据。所以你不需要通过JSON.parse,你可以直接引用data作为一个普通的javascript对象。

【讨论】:

以上是关于json.parse 给出 Uncaught SyntaxError: Unexpected Token (Django json serialized queryset)的主要内容,如果未能解决你的问题,请参考以下文章

js、javascript : Uncaught SyntaxError: Unexpected token u

项目中遇到Uncaught TypeError: Converting circular structure to JSON报错问题

Json.Parse 转义换行符

雪花存储过程给出类似“Uncaught ReferenceError”之类的错误?

SoundCloud API 给出“Uncaught SyntaxError: Unexpected token:”错误

jQuery Post blob 对象给出 Uncaught TypeError: Illegal invocation