遍历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);
});
Rob W answered 2020-07-19T21:03:56Z
10 votes

您还可以从.get方法更改为.getJSON方法,然后jQuery会将以[object Object]返回的字符串解析为一个javascript对象和/或数组,您可以像其他任何javascript对象/数组一样引用该字符串。

使用上面的代码,如果将.get更改为.getJSON,则应该为数组中的每个元素收到[object Object]的警报。 如果将警报更改为alert(item.name),您将获得名称。

Kevin B answered 2020-07-19T21:04:21Z
1 votes

我不认为你从服务器返回json对象。 只是一个字符串。

您需要返回对象的dataType为json

Royi Namir answered 2020-07-19T21:04:46Z
translate from https://stackoverflow.com:/questions/7771616/loop-through-json-array-jquery