2013-05-27 44 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'的原因。只要属性名称是数字,就必须使用括号符号来访问该值。 –