无法解决错误“Uncaught SyntaxError: Unexpected token o”
Posted
技术标签:
【中文标题】无法解决错误“Uncaught SyntaxError: Unexpected token o”【英文标题】:Unable to solve error " Uncaught SyntaxError: Unexpected token o " 【发布时间】:2013-01-10 19:39:35 【问题描述】:我目前正在练习使用 javascript/Dojo。但是,我有一个我无法解决的错误:
Uncaught SyntaxError: Unexpected token o
我已经快速解决了我的问题:
var data =
"list":
"1":
"Relevance": "Low",
"id": 1,
"Name": "Inorganic"
,
"2":
"Relevance": "Low",
"id": 2,
"Name": "Mobile"
var jsonData = JSON.parse(data);
alert(jsonData.list[1].Name);
它专门针对以下行:
var jsonData = JSON.parse(data);
我想知道为什么这是一个错误以及我将如何解决它。
【问题讨论】:
已经有人问过这个问题several times。一个可能的副本在这里:***.com/questions/8081701/… 【参考方案1】:您正在尝试解析 JavaScript 对象。 JSON.parse
用于解析 JSON 字符串表示类似 JavaScript 的对象。
完全跳过解析:
alert(data.list[1].Name);
关于相关说明:您可能有兴趣阅读 There's no such thing as a "JSON Object"。
【讨论】:
【参考方案2】:错误一旦被声明为数据类型 json,它会为你解析。
所以:应该是这样的
<span style="text-decoration:line-through;">var obj = JSON.parser(data)</span>
success: function(data)
var obj = JSON.parser(data)
alert(obj.data)
【讨论】:
【参考方案3】:试试:
alert(data.list[1].Name);
代替:
var jsonData = JSON.parse(data);
alert(jsonData.list[1].Name);
数据已经是一个javascript对象而不是字符串
【讨论】:
【参考方案4】:这是因为您正在解析一个普通对象,而不是一个字符串,正如预期的那样。 在这种情况下,您只需:
alert(jsonData.list[1].Name);
在这种情况下,要使用JSON.parse
方法,您应该一直使用这个字符串:
var stringifiedJson = var data = ""+
"\"list\": "+
"\"1\": "+
"\"Relevance\": \"Low\","+
"\"id\": 1,"+
"\"Name\": \"Inorganic\""+
","+
"\"2\": "+
"\"Relevance\": \"Low\","+
"\"id\": 2,"+
"\"Name\": \"Mobile\""+
""+
""+
"";
var jsonData = JSON.parse(stringifiedJson);
alert(jsonData.list[1].Name);
我建议你看看this MDN article about native JSON
【讨论】:
以上是关于无法解决错误“Uncaught SyntaxError: Unexpected token o”的主要内容,如果未能解决你的问题,请参考以下文章