我有一个简单的API设置,我需要从中提取一些基本信息。确实,我在heroku上存储了两个变量:
{ "mylong":"38.804858" , "mylatt":"-77.045120" }
我的目标是将这两个对象放入javascript变量并使用它们。这是我到目前为止在我的javascript文件中的内容:
<script type="text/javascript">
function initialize() {
var mylongMylatt;
$.getJSON("http://someURLtoheroku.com/info.json", function(json){
mylongMylatt=json;
}
var mylong = mylongMylatt.mylong[0]
var mylatt = -mylongMylatt.mylatt[0]
这对我来说是一款学习游戏,所以我很想学习如何做到这一点,而不仅仅是答案,但我真的迷失了,谢谢!
答案 0 :(得分:1)
您可以通过.
$.getJSON("http://someURLtoheroku.com/info.json", function(json){
var myLong = json.mylong
var mylatt = json.mylatt;
});
但是,在 getJSON
调用完成后,由于调用的异步性质,您无法访问这些变量,因此您需要做任何工作希望在回调中。
答案 1 :(得分:1)
<强> JS 强>
<script type="text/javascript">
function initialize() {
var mylongMylatt;
$.getJSON("http://someURLtoheroku.com/info.json", {
format: "json"
}).done(function( data ) {
//.done subscribes to the .ajax promise and will execute on success.
//json here is actually an object
var mylong=data.mylong;
var mylatt=data.mylatt;
});
});
注意: jQuery 1.5中的Promise接口还允许jQuery的Ajax方法(包括$.getJSON()
)链接多个.done()
,.always()
和.fail()
回调单个请求,甚至在请求完成后分配这些回调。如果请求已经完成,则立即触发回调。
由于.ajax
是承诺,因此它接受deferred.object
http://api.jquery.com/category/deferred-object/
.promise
说明:这是有效的,因为$.getJSON
函数第二个参数是第一个成功函数。
<script type="text/javascript">
function initialize() {
var mylongMylatt;
$.getJSON("http://someURLtoheroku.com/info.json", function(json){
var mylong = json.mylong;
var mylatt = -json.mylatt;
}