【问题标题】:Unable to solve error " Uncaught SyntaxError: Unexpected token o "无法解决错误“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);

我想知道为什么这是一个错误以及我将如何解决它。

【问题讨论】:

标签: javascript json dojo


【解决方案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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-07-01
          • 1970-01-01
          • 2015-04-21
          • 1970-01-01
          • 2013-10-14
          • 2013-09-29
          相关资源
          最近更新 更多