I'm trying to loop through this to get the 'name' values. This is what I currently have, but it doesn't seem to be working, tried a few others from what was posted here but nothing seemed to work.
$.get("/get_names", {campaign_id: $('select[name="id"]').val()},
function(data){
$.each(data, function(i, item) {
alert(item);
});
}
);
Json being returned:
[
{
"name":"age"
},
{
开发者_开发知识库 "name":"asdf"
},
{
"name":"drivername"
},
{
"name":"drivers"
},
{
"name":"firstname"
},
{
"name":"gender"
},
{
"name":"lastname"
},
{
"name":"make"
},
{
"name":"model"
},
{
"name":"vehicles"
},
{
"name":"year"
}
]
I've tried using:
item.name
item[i].name
Any suggestions?
Thank you!
You have to parse the string as JSON (data[0] == "["
is an indication that data
is actually a string, not an object):
data = $.parseJSON(data);
$.each(data, function(i, item) {
alert(item);
});
you could also change from the .get()
method to the .getJSON()
method, jQuery will then parse the string returned as data
to a javascript object and/or array that you can then reference like any other javascript object/array.
using your code above, if you changed .get
to .getJSON
, you should get an alert of [object Object]
for each element in the array. If you changed the alert to alert(item.name)
you will get the names.
I dont think youre returning json object from server. just a string.
you need the dataType of the return object to be json
精彩评论