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解析为对象。