[英]How to assign json object using getJSON
我想將 json object branch
lat
和lng
分配給jsonData
變量。
如果我 console.log jsonData.responseJSON.positions.length
或jsonData.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.