2013-05-27 45 views
0

我的響應看起來是這樣的:JSON - 如何提取從Django響應收到的數據?

[{ 「0」: 「[email protected]」},{ 「1」: 「[email protected]」},{ 「2」:「N @ n.com「},{」3「:」[email protected]},{「4」:「[email protected]」},{「5」:「[email protected]」},{「6 「:‘[email protected]’}]

我想通過以下HTML閱讀本:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"></script> 
<script type="text/javascript"> 

    $(document).ready(function(){ 


     document.write('Getting JSON response...'); 
     $.getJSON(<my django url>, 
      function(data) { 
      alert("receiveng"+data["0"]); 
      }); 
    }); 

</script> 

</head> 


<body> 
</body> 
</html> 

但我沒有得到任何警告框與數據,只是獲得JSON響應.....行被打印在屏幕上

這是我的返回聲明:

return HttpResponse(simplejson.dumps(result) , content_type='application/json') 
+1

切勿在任何類型的回調中使用'document.write':它不應該在執行初始代碼後執行。填寫段落並將其附加到頁面上(或在調試期間使用console.log)。 –

+1

你能向我們展示你的觀點嗎?只是基於看jQuery的小剪輯,它應該工作。 –

+0

答覆在屏幕上打印爲: [{「0」:「[email protected]」},{「1」:「[email protected]」},{「2」:「n @ n。 COM]}] 當我運行的HTML,它只是給出了獲取JSON響應.....打印在它的空白頁面。 – stark

回答

0

感謝您的幫助球員。

數據[0] [0]表示法工作。

在運行循環,直到數據[i] [j]的值被證明是未定義的, 我使用:

數據[I] [i.toString()]; 它工作得很好。

0

問題是你的JSON格式,不能被分析/評估。例如,任何JSON對象看起來是這樣的:

[ 
    {"attributeName1":"value1", "attributeName2":"value2"}, 
    {"attributeName1":"value3", "attributeName2":"value4"} 
] 

但在你的JSON例子中,你有attributeName10。如果我們給變量命名爲0,那也是一樣的。像define 0 = [email protected]。是不可能的。嘗試將其更改爲類似id0

+0

JSON有效,將其轉換爲JavaScript對象數組沒有任何問題。這有點不尋常。一旦它被解析,你可以用'data [0] [0]'來訪問''「」[email protected]「'。到目前爲止,變量名不能是數字,而是屬性名可以。 –

+0

是的,你是對的,當我做'$ .parseJSON'時,它將它解析爲對象,但不可能做'data [「0」]。0,所以它會給出一個錯誤,或者當它返回響應或者它時在'getJSON'處理程序中收到。 – andriy

+0

是的,但這就是爲什麼使用方括號表示法。'data [0] [0]'有效且有效。這就是我們使用'arr [0]'來訪問數組元素而不是'arr.0'的原因。只要屬性名稱是數字,就必須使用括號符號來訪問該值。 –