最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Unable to solve error " Uncaught SyntaxError: Unexpected token o " - Stack Overflow

programmeradmin0浏览0评论

I am currently practicing using Javascript/Dojo. However, I have an error that I am unable to solve:

Uncaught SyntaxError: Unexpected token o

I have made a quick snippet of my problem:

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);

It specifically targets the line with:

var jsonData = JSON.parse(data);

I would like to know why this is an error & how I would solve it.

I am currently practicing using Javascript/Dojo. However, I have an error that I am unable to solve:

Uncaught SyntaxError: Unexpected token o

I have made a quick snippet of my problem:

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);

It specifically targets the line with:

var jsonData = JSON.parse(data);

I would like to know why this is an error & how I would solve it.

Share Improve this question edited Jan 10, 2013 at 19:41 Joseph Silber 220k59 gold badges368 silver badges293 bronze badges asked Jan 10, 2013 at 19:39 JoseJose 6172 gold badges7 silver badges22 bronze badges 1
  • 1 This question has been asked several times already. A possible duplicate is here: stackoverflow.com/questions/8081701/… – Robert Harvey Commented Jan 10, 2013 at 19:45
Add a comment  | 

4 Answers 4

Reset to default 11

You're trying to parse a JavaScript object. JSON.parse is for parsing a JSON string representing a JavaScript-like object.

Just skip the parsing altogether:

alert(data.list[1].Name);

On a related note: you might be interested in reading There's no such thing as a "JSON Object".

Error is once declared as datatype json, it parses for you.

so : it would be something like this

<span style="text-decoration:line-through;">var obj = JSON.parser(data)</span>

 success: function(data){

  var obj = JSON.parser(data)

  alert(obj.data)

}

try :

 alert(data.list[1].Name);

instead of:

 var jsonData = JSON.parse(data);
 alert(jsonData.list[1].Name);

data is already a javascript object not a string

That's because you are parsing a plain object, and not a string, as expected. In this case you just have to:

alert(jsonData.list[1].Name);

In this case, to use the JSON.parse method you should've been using this string:

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);

I recommend you to take a look at this MDN article about native JSON

发布评论

评论列表(0)

  1. 暂无评论