当我在chrome中运行我的页面时,我得到这个错误“uncaught syntaxerror unexpected token U”。在firefox中,我得到JSON。解析:意想不到的字符”。我从一个php文件返回json数据,返回的json字符串是有效的。我在http://jsonlint.com/上查过。任何帮助都将不胜感激。谢谢。

这是返回的JSON字符串

[
    ["1","Pan Africa Market","\"1521 1st Ave, Seattle, WA\"","47.608941","-122.340145","restaurant"],
    ["2","The Melting Pot","14 Mercer St, Seattle, WA","47.624562","-122.356442","restaurant"],
    ["3","Ipanema Grill","1225 1st Ave, Seattle, WA","47.606366","-122.337656","restaurant"],
    ["4","Sake House","230 1st Ave, Seattle, WA","47.612825","-122.34567","bar"],
    ["5","Crab Pot","1301 Alaskan Way, Seattle, WA","47.605961","-122.34036","restaurant"],
    ["6","Mexican Kitchen","2234 2nd Ave, Seattle,WA","47.613975","-122.345467","bar"],
    ["7","Wingdome","1416 E Olive Way, Seattle, WA","47.617215","-122.326584","bar"],
    ["8","Piroshky Piroshky","1908 Pike pl, Seattle, WA","47.610127","-122.342838","restaurant"]
]

当前回答

该错误通常在将值赋给JSON时出现。Parse实际上是未定义的。 所以,我会检查试图解析这个的代码——很可能你不是在解析这里显示的实际字符串。

其他回答

当我在for循环中对JSONArray运行find条件时,我遇到了这个错误。我遇到的问题是for循环中的一个值返回null的结果。因此,当我试图访问一个属性,它失败了。

因此,如果你在JSONArrays中做任何事情,你不确定数据源及其完整性,我认为在这种情况下处理null和未定义异常是一个好习惯。

我通过检查JSONArray上find的返回值是否为空并适当地处理异常来修复它。

我想这可能会有帮助。

该错误通常在将值赋给JSON时出现。Parse实际上是未定义的。 所以,我会检查试图解析这个的代码——很可能你不是在解析这里显示的实际字符串。

在我的例子中,它试图在XHRResponse返回之前对AJAX变量调用JSON.parse()。例如:

var response = $.get(URL that returns a valid JSON string);
var data = JSON.parse(response.responseText);

我用jQuery站点$.get的例子替换了它:

<script type="text/javascript"> 
    var jqxhr = $.get( "https://jira.atlassian.com/rest/api/2/project", function() {
          alert( "success" );
        })
          .done(function() {
//insert code to assign the projects from Jira to a div.
                jqxhr = jqxhr.responseJSON;
                console.log(jqxhr);
                var div = document.getElementById("products");
                for (i = 0; i < jqxhr.length; i++) {
                    console.log(jqxhr[i].name);
                    div.innerHTML += "<b>Product: " + jqxhr[i].name + "</b><BR/>Key: " + jqxhr[i].key + "<BR/>";
                }
                console.log(div);
            alert( "second success" );
          })
          .fail(function() {
            alert( "error" );
          })
          .always(function() {
            alert( "finished" );
          });

        // Perform other work here ...

        // Set another completion function for the request above
        jqxhr.always(function() {
          alert( "second finished" );
        });
</script>

我得到这个错误,当我使用相同的变量json字符串和parsed json:

var json = '{"1":{"url":"somesite1","poster":"1.png","title":"site title"},"2":{"url":"somesite2","poster":"2.jpg","title":"site 2 title"}}'

function usingjson(){
    var json = JSON.parse(json);
}

我把函数改为:

function usingjson(){
    var j = JSON.parse(json);
}

现在这个错误消失了。

好吧,对于那些实际上在你的代码中任何地方都找不到错误的人,既不是“在本地存储中未定义也不是null”。简单地只是注释掉你的代码,并编写另一个实际删除本地存储项。在那之后,你可以注释或删除当前的代码,并通过简单地取消注释来重新设置之前的代码(如果你不删除t…如果你写过,你可以再写一遍:)

LocalStorage.setItem('Previous' , "removeprevious");  


LocalStorage.removeItem('Previous');   
 Console.log(LocalStorage.getItem('Previous'));

控制台将显示null,并且它..如果t不起作用,请重新设置代码!你有错误。

对不起我的英语!