我可以使用Jquery的$ .get函数从另一个URL访问JSON数据,但是如何在代码的其他地方使用该数据(作为数组)?
请考虑以下代码:
<script type="text/javascript">
$(function () {
$.get("/some/other/url/that/returns/json", function(data){
var d = eval(data);
});
alert(d);
</script>
这不起作用,但它显示了我想做的事情。在此先感谢您的帮助/提示。
答案 0 :(得分:3)
这样做:
<script type="text/javascript">
var d;
$.get("/some/other/url/that/returns/json", function(json){
d = json;
}, "json");
</script>
你将获得json
响应,如果它已经是一个数组,你将不需要做任何其他事情。另外,请尽可能少地使用eval()
。 (根本不是很好)
小心d
不会有任何值,直到有响应,所以你的代码应该处理它。最有可能的是,您将在$ .get(“...”, function(json){} ,“json”)中调用使用d
的函数。
<script type="text/javascript">
var d;
useArray = function(d){
//Operations that involve the response
}
$.get("/some/other/url/that/returns/json", function(json){
d = json;
// Operate over "d" once your server
useArray(d);
}, "json");
</script>
当然,由于您现在在一个单独的函数上执行了d
以上的所有操作,您可以简单地执行此操作
<script type="text/javascript">
useArray = function(d){
//Operations that involve the response
}
$.get("/some/other/url/that/returns/json", function(json){
useArray(json);
}, "json");
</script>
如果您需要再次访问d
,则应根据需要修改代码。这只是一个指南。
答案 1 :(得分:0)
使d成为全局变量。或者将其分配给任何使用它的需要。
答案 2 :(得分:0)
仅供参考,您可以在通话中添加'type'arg并避免使用eval:$ .get('url',function(data){...},'json')
或者您可以使用$ .getJSON('url',function(data){...});