簡體   English   中英

如何使用 getJSON 分配 json object

[英]How to assign json object using getJSON

我想將 json object branch latlng分配給jsonData變量。
如果我 console.log jsonData.responseJSON.positions.lengthjsonData.responseJSON.positions[0].lat
我可以像這樣看到我的 json 數據。 控制台圖像
但是,如果我對其進行編碼並運行,則會出現錯誤。
例如,

var jsonData = $.getJSON("{% static "kia_data_brlatlng.json" %}", function(data){
    console.log(jsonData)
});

for(var i = 0; i < jsonData.responseJSON.positions.length; i++) {
    //not work
}

for(var i = 0; i < 681; i++) {
    //work
}

有人給了我一個提示,它需要在$.getJSON但仍然很難找到解決方案。
任何幫助,將不勝感激!

我將添加我的 json 文件的外觀。

{
    "positions": [
      {
        "branch": "A",
        "lat": 37.5221642,
        "lng": 127.0339206
      },
      {
        "branch": "B",
        "lat": 35.1547587,
        "lng": 129.0389295
      },
      //and 679 more
    ]
}

這是由於 Javascript 的異步特性。 你必須等到你得到回應。 或者您可以在響應到來時編寫代碼。

var jsonData = $.getJSON("{% static "kia_data_brlatlng.json" %}", function(data){
    console.log(jsonData)
    for(var i = 0; i < data.responseJSON.positions.length; i++) {
      //here this will work
    }
});

或者 getJSON 返回承諾,這樣您就可以使用 then 來獲取響應。 在這里檢查: function 等待返回,直到 $.getJSON 完成

查看您的 json object 后,基本上看起來像這樣

    jsonData = {
        "positions": [
          {
            "branch": "A",
            "lat": 37.5221642,
            "lng": 127.0339206
          },
          {
            "branch": "B",
            "lat": 35.1547587,
            "lng": 129.0389295
          },
          //and 679 more
        ]
    }

因此,如果您想對其進行迭代,則可以像這樣簡單地迭代它

    for(var i = 0; i < jsonData.positions.length; i++) {
        //work
        console.log(jsonData.positions[i])
    }

這是因為 getJSON function 是異步的,所以在獲取 jsonData 變量中的數據之前執行循環。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM