Here's my ajax call:
$.ajax({
url: 'url-to-json',
type: 'POST',
dataType: 'json',
cache: 'false',
data: { lat: lat, lng: lng }
}).done(function(data) {
$.each(data, function(a) {
alert(data[a]);
});
});
Here's the json it's iterating over:
[
{"Id":"4c75bd5666be6dcb9f70c10f","Name":"BXtra","EnglishName":null,"Lat":35.7515869140625,"Lng":139.33872985839844},
{"Id":"4c5160a1d2a7c9b655d51211","Name":"セブンイレブン 武蔵野台店","EnglishName":null,"Lat":35.750205993652344,"Lng":139.33448791503906},
...
]
But instead of actually giving me access to the properties of each item in the json array, it literally loops through each character in the array, one by one.
What am I doing wrong?
You can modify your $.each
function in two ways:
$.each(data, function(index,el) {
// el = object in array
// access attributes: el.Id, el.Name, etc
});
Or,
$.each(data, function() {
// this = object in array
// access attributes: this.Id, this.Name, etc
});
If data
is a string within your done
function and not an object, then you'll need to run
data = $.parseJSON(data)
before your $.each
loop
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With