我目前正在练习使用Javascript / Dojo。但是,我有一个我无法解决的错误:
未捕获的SyntaxError:意外的令牌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);
我想知道为什么这是一个错误&我将如何解决它。
答案 0 :(得分:10)
您正在尝试解析JavaScript对象。 JSON.parse
用于解析表示类似JavaScript对象的JSON字符串。
完全跳过解析:
alert(data.list[1].Name);
相关说明:您可能有兴趣阅读 There's no such thing as a "JSON Object" 。
答案 1 :(得分:4)
错误一旦被声明为数据类型json,它就会为你解析。
所以:它会是这样的
<span style="text-decoration:line-through;">var obj = JSON.parser(data)</span>
success: function(data){
var obj = JSON.parser(data)
alert(obj.data)
}
答案 2 :(得分:2)
尝试:
alert(data.list[1].Name);
而不是:
var jsonData = JSON.parse(data);
alert(jsonData.list[1].Name);
数据已经是javascript对象而不是字符串
答案 3 :(得分:1)
那是因为您正在按预期解析普通对象而不是字符串。 在这种情况下,您只需:
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);