2015-05-10 95 views
0

對不起n00bSyntaxError:missing;之前的聲明Json陣列

我有這個簡單的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 
     } 
    ] 
} 
} 

結果當我不在數組的結構儘量代碼的作品,但上面我得到一個語法錯誤:缺少;在螢火蟲控制檯的語句錯誤之前。我究竟做錯了什麼?

+0

在哪一行你會得到錯誤? –

+1

它在這裏工作正常:https://jsfiddle.net/0m6x13fn/ –

+0

說012號線上的\t {「status」:「success」,「message」:「」,「responseData」:{「leaderboard」:[ {「使用說在」狀態「和」成功「之間 – Riz3r09

回答

0

我可以通過省略變量賦值來複制錯誤,如下所示。

這將是有益的,如果你能解釋你的問題,這部分...

when i try with a structure that is not in an array the code works but with above i get a 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> 
1

嘗試改變dataType: 'jsonp'dataType: 'json'

您收到的數據是jsonjsonp。因此,錯誤已經發生。

+1

好的地方阿卡什。這是正確的答案,因爲我剛測試它。但是,要真正看到錯誤,我不得不添加錯誤函數調用jQuery ajax調用沒有它,ajax調用在調試器中無聲無息 – Roberto

+0

感謝Akash,你是對的,數據是以json的形式出現的好現場 – Riz3r09

+0

@ Riz3r09好的謝謝..pls將答案標記爲正確的:D –