从.json获取javascript var返回

时间:2014-04-02 17:57:27

标签: javascript json api

我有一个简单的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]

这对我来说是一款学习游戏,所以我很想学习如何做到这一点,而不仅仅是答案,但我真的迷失了,谢谢!

2 个答案:

答案 0 :(得分:1)

您可以通过.

访问JSON属性
$.getJSON("http://someURLtoheroku.com/info.json", function(json){
   var myLong = json.mylong
   var mylatt = json.mylatt;
 });

但是,在 getJSON调用完成后,由于调用的异步性质,您无法访问这些变量,因此您需要做任何工作希望在回调中。

答案 1 :(得分:1)

使用getJSON documentation


<强> 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;
        }