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

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

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

javascript代码:

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

我收到错误:

 SyntaxError: JSON Parse error: Unexpected identifier "object" 

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

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

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

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

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

 JSON.parse("[object Object]") 

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

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