SyntaxError:missing;在声明Json数组之前

时间:2015-05-10 08:50:30

标签: javascript jquery json

请原谅n00b

我有这个简单的json jquery调用,我遇到了问题。

    <script>
    $(document).ready(function(){
        var table = $('#datatable');
        $.ajax({          
        type:  'GET',
     url:   'http://jsonurl',
        dataType: 'jsonp',              
        success: function(data) {
                    $.each(data.responseData.leaderboard, function(i, item){
                        var rowItem = '<tr><td>' + item.userid +
                                      '</td><td>' + item.username + 
                                      '</td><td>' + item.companyname +
                                      '</td/></tr>';

                        table.append(rowItem);
                        return i<4;
                    });

                }
        });

    });
</script>

json url返回类似

的结果
{"status": "success",
 "message": "",
 "responseData": {
     "leaderboard": [
         {
             "userid": 1,
             "username": "username1",
             "companyname": "Working com 1",
             "currentlevel": 1
         },
         {
             "userid": 2,
             "username": "username2",
             "companyname": "Working com 1",
             "currentlevel": 13
         }
     ]
 }
}

当我尝试使用不在数组中的结构时,代码可以正常工作但是上面我得到一个SyntaxError:missing;在firebug控制台中声明错误之前。我做错了什么?

2 个答案:

答案 0 :(得分:1)

尝试将dataType: 'jsonp'更改为dataType: 'json'

您收到的数据为json而不是jsonp。因此,错误已经发生。

答案 1 :(得分:0)

我可以通过省略变量赋值来复制错误,如下所示。

如果您解释这部分问题,将会有所帮助......

  

当我尝试使用不在数组中的结构时代码可以工作但是   以上我得到一个SyntaxError:missing;

此示例将返回 SyntaxError:missing;在陈述之前

<script type="text/javascript">
// var data = 
{"status": "success",
 "message": "",
 "responseData": {
     "leaderboard": [
         {
             "userid": 1,
             "username": "username1",
             "companyname": "Working com 1",
             "currentlevel": 1
         },
         {
             "userid": 2,
             "username": "username2",
             "companyname": "Working com 1",
             "currentlevel": 13
         }
     ]
 }
}

</script>

此示例无错误地运行:

<script type="text/javascript">

var data = 

{"status": "success",
 "message": "",
 "responseData": {
     "leaderboard": [
         {
             "userid": 1,
             "username": "username1",
             "companyname": "Working com 1",
             "currentlevel": 1
         },
         {
             "userid": 2,
             "username": "username2",
             "companyname": "Working com 1",
             "currentlevel": 13
         }
     ]
 }
}

</script>