我有一个简单的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]
这对我来说是一个学习游戏,所以我很想学习如何做到这一点,不仅仅是答案,而是真的迷茫,谢谢!
使用 getJSON 文档
.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;
}
.
访问 JSON 属性
$.getJSON("http://someURLtoheroku.com/info.json", function(json){
var myLong = json.mylong
var mylatt = json.mylatt;
});
但是,由于调用的异步性质,在getJSON
调用完成之前无法访问这些变量,因此您需要在回调中执行所需的任何工作。