我正在尝试遍历这个来获取'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
有什么建议吗?
谢谢!
答案 0 :(得分:118)
您必须将字符串解析为JSON(data[0] == "["
表示data
实际上是字符串,而不是对象):
data = $.parseJSON(data);
$.each(data, function(i, item) {
alert(item);
});
答案 1 :(得分:10)
您也可以从.get()
方法更改为.getJSON()
方法,然后jQuery会将返回为data
的字符串解析为javascript对象和/或数组,然后您可以引用它像任何其他javascript对象/数组一样。
使用上面的代码,如果您将.get
更改为.getJSON
,则应该为数组中的每个元素收到[object Object]
的警报。如果您将警报更改为alert(item.name)
,您将获得名称。
答案 2 :(得分:1)
我不认为你从服务器返回json对象。只是一个字符串。
您需要返回对象的dataType为json