SyntaxError:JSON解析错误:意外的标识符“object”(匿名函数)

时间:2013-12-18 14:09:59

标签: javascript jquery json

我不明白解析文件时出了什么问题:

{ "t": -9.30, "p": 728.11, "h": 87.10 }

javascript代码:

<script type="text/javascript">
function check() {
    $.get("http://....file.json", function(response, status, xhr) {
        if (status == "success") {
            var json = JSON.parse(response);
            $("#temp").html(json.t + "&deg;");
            $("#pressure").html(json.p + " mm hg");
        }
        if (status == "error") {
            $("#temp").html("error");
        }
    });
}

我收到错误:

SyntaxError: JSON Parse error: Unexpected identifier "object"

2 个答案:

答案 0 :(得分:31)

很可能你的response已经是一个JavaScript对象,不需要解析它。

删除行var json = JSON.parse(response);,您的代码应该有效。

答案 1 :(得分:7)

根据$.ajax上的jQuery文档(这是$.get在内部使用的内容):

  

dataType: ...如果没有指定,jQuery将尝试根据响应的MIME类型推断它(XML MIME类型将产生XML,在1.4 JSON将产生一个JavaScript对象 ...)

因此,您的回答可能已经是一个对象。当你JSON.parse(response)时,你真的在​​做

JSON.parse("[object Object]")

因为JSON.parse coerces its argument to a string,普通对象默认字符串化为[object Object]。最初的[导致JSON.parse期望一个数组,但它会在object令牌上窒息,这不符合JSON语法。

删除JSON.parse行,因为response已被jQuery解析为对象。