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

asp*_*e89 15 javascript jquery json

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

{ "t": -9.30, "p": 728.11, "h": 87.10 }
Run Code Online (Sandbox Code Playgroud)

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");
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

我收到错误:

SyntaxError: JSON Parse error: Unexpected identifier "object"
Run Code Online (Sandbox Code Playgroud)

Vis*_*ioN 36

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

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


aps*_*ers 7

根据jQuery文档$.ajax($.get内部使用的):

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

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

JSON.parse("[object Object]")
Run Code Online (Sandbox Code Playgroud)

因为JSON.parse它将参数强制转换为字符串,而普通对象默认为stringify [object Object].初始[导致JSON.parse期望一个数组,但它然后在object令牌上窒息,这不符合JSON语法.

删除该JSON.parse行,因为response已经通过jQuery解析为对象.