遍历json数组jquery
我试图遍历此以获取“名称”值。 这是我目前所拥有的,但似乎没有用,尝试从此处发布的内容中尝试其他方法,但似乎无济于事。
$.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
有什么建议?
谢谢!
dzm asked 2020-07-19T21:03:30Z
3个解决方案
120 votes
您必须将字符串解析为JSON(data[0] == "["
表示data
实际上是字符串,而不是对象):
data = $.parseJSON(data);
$.each(data, function(i, item) {
alert(item);
});
10 votes
您还可以从.get
方法更改为.getJSON
方法,然后jQuery会将以[object Object]
返回的字符串解析为一个javascript对象和/或数组,您可以像其他任何javascript对象/数组一样引用该字符串。
使用上面的代码,如果将.get
更改为.getJSON
,则应该为数组中的每个元素收到[object Object]
的警报。 如果将警报更改为alert(item.name)
,您将获得名称。
1 votes
我不认为你从服务器返回json对象。 只是一个字符串。
您需要返回对象的dataType为json