这是我第一次在jquery中处理json。我面临一些问题,当我打开时:
http://localhost:3000/calendar/termine/24-11-2013
在我的浏览器中,我得到:
[{"id":73539,"name":"Anneliese","input":"18-40"},{"id":73537,"name":"Appolonia","input":"14-20"}]
因此,当我只是复制它并将其作为变量时,我的代码就可以了:
var array = [{"id":73539,"name":"Anneliese","input":"18-40"},{"id":73537,"name":"Appolonia","input":"14-20"}]
然后我尝试使用jquery:
var array = $.getJSON("/calendar/termine/24-10-2013");
这不知道怎么办?我错了什么?
当我打开页面..termine/24-10-2013
时,输出看起来像这样,所以现在我不是百分之百确定它是否真正的json:
<html>
<head> … </head>
<body>
<pre>
[{"id":null,"name":"sara","input":"11"},…
</pre>
</body>
</html>
答案 0 :(得分:2)
如$.getJSON()
method documentation中所述,它不会返回结果,而是返回jqXHR
个对象。您需要提供一个回调来接收结果,并且因为异步调用回调,您需要在那里处理结果:
$.getJSON("/calendar/termine/24-10-2013", function(array) {
// do something with array here
});
“来自其他网站”
如果您确实尝试从其他域检索数据,那么由于same origin policy会出现问题,但在您的示例中,您使用的网址似乎是与页。如果它是一个不同的域,你可以使用JSONP,如果另一个域支持它 - 当然如果你控制那个页面,你可以自己实现JSONP作为一个选项。
答案 1 :(得分:1)
您必须等待响应,然后设置变量。
var array;
$.getJSON("/calendar/termine/24-10-2013", function(data){
array = data;
});
答案 2 :(得分:0)
你必须获取json数据,然后解析它然后循环并使用以下方式获取它: -
$('document').ready(function(){
jQuery.get("your/url/that/get/json/",function(data) {
data = jQuery.parseJSON(data);
jQuery.each(data, function(key, value) {
jQuery('#dataContainer').append(value.id+"<br>"+value.name);
});
});
假设您有任何html区域<div id="dataContainer"></div>
希望这有用。