如何使用 getJSON 分配 json 对象
How to assign json object using getJSON
我想将 json 对象 branch
lat
和 lng
分配给 jsonData
变量。
如果我 console.log jsonData.responseJSON.positions.length
或 jsonData.responseJSON.positions[0].lat
,等等
我可以像这样看到我的 json 数据。
console image
但是如果我对它进行编码并且 运行,它就会出错。
例如,
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 return promises 以便您使用 then 来获取响应。在这里查看:function wait with return until $.getJSON is finished
查看您的 json 对象后基本上看起来像这样
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函数是异步的,所以循环在你获取jsonData变量中的数据之前执行。
我想将 json 对象 branch
lat
和 lng
分配给 jsonData
变量。
如果我 console.log jsonData.responseJSON.positions.length
或 jsonData.responseJSON.positions[0].lat
,等等
我可以像这样看到我的 json 数据。
console image
但是如果我对它进行编码并且 运行,它就会出错。
例如,
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 return promises 以便您使用 then 来获取响应。在这里查看:function wait with return until $.getJSON is finished
查看您的 json 对象后基本上看起来像这样
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函数是异步的,所以循环在你获取jsonData变量中的数据之前执行。