Ответ 1
Вам нужно проанализировать строку как JSON (data[0] == "["
является признаком того, что data
- это фактически строка, а не объект):
data = $.parseJSON(data);
$.each(data, function(i, item) {
alert(item);
});
Я пытаюсь пройти через это, чтобы получить значения "name". Это то, что я сейчас имею, но, похоже, он не работает, попробовал несколько других из того, что было опубликовано здесь, но ничего не работало.
$.get("/get_names", {campaign_id: $('select[name="id"]').val()},
function(data){
$.each(data, function(i, item) {
alert(item);
});
}
);
Возврат Json:
[
{
"name":"age"
},
{
"name":"asdf"
},
{
"name":"drivername"
},
{
"name":"drivers"
},
{
"name":"firstname"
},
{
"name":"gender"
},
{
"name":"lastname"
},
{
"name":"make"
},
{
"name":"model"
},
{
"name":"vehicles"
},
{
"name":"year"
}
]
Я пробовал использовать:
item.name
item[i].name
Любые предложения?
Спасибо!
Вам нужно проанализировать строку как JSON (data[0] == "["
является признаком того, что data
- это фактически строка, а не объект):
data = $.parseJSON(data);
$.each(data, function(i, item) {
alert(item);
});
вы также можете изменить метод .get()
на метод .getJSON()
, затем jQuery проанализирует строку, возвращаемую как data
, на объект javascript и/или массив, который затем можно ссылаться, как и любой другой объект javascript/массив.
используя ваш код выше, если вы изменили .get
на .getJSON
, вы должны получить предупреждение [object Object]
для каждого элемента массива. Если вы изменили оповещение на alert(item.name)
, вы получите имена.
Я не думаю, что вы возвращаете объект json с сервера. просто строка.
вам нужно, чтобы dataType возвращаемого объекта был json