在ajax成功和循环json数组上检索json数组

时间:2015-03-16 08:12:19

标签: javascript php arrays ajax json

我正在获得和json数组的ajax成功。我只是在我的控制器类上编码,然后成功。 这是我的json

var info = {
    "full_name" : "Ray Villalobos",
    "title" : "Staff Author",
    "links" : [
       {
            "blog"     : "http://example.com",
            "facebook" : "http://facebook.com/example",
            "youtube"  : "http://www.youtube.com/example",
            "podcast"  : "http://feeds.feedburner.com/example",
            "twitter"  : "http://twitter.com/example" 
       },
       {
            "blog"     : "http://example.com",
            "facebook" : "http://facebook.com/example",
            "youtube"  : "http://www.youtube.com/example",
            "podcast"  : "http://feeds.feedburner.com/example",
            "twitter"  : "http://twitter.com/example" 
        },
        {
            "blog"     : "http://example.com",
            "facebook" : "http://facebook.com/example",
            "youtube"  : "http://www.youtube.com/example",
            "podcast"  : "http://feeds.feedburner.com/example",
            "twitter"  : "http://twitter.com/example" 
        }
    ]
};

现在,如果我的链接只有一个数据集而不是数组,我正在检索这样的键和值:

for ( key in info.links ) {
    if (info.links.hasOwnProperty(key)) {
    output += '<li>' +
    '<a href = "' + info.links[key] + '">' + key + '</a>' + '</li>';
   } //if the links has the key property
} // for...go through each link

如何在循环中检索数组键值?

4 个答案:

答案 0 :(得分:0)

我不确定你在这里要做什么,但在&#34; for ... in&#34;循环,这里的关键是数组的索引。您可以使用以下代码获取链接:

var link = info.links[key];

然后检索相关属性,在您的情况下,属性可能是&#34; link.blog&#34;或&#34; link.facebook&#34;等

答案 1 :(得分:0)

for (infolink in info.links){
 for ( key in infolink ) {
  if (infolink.hasOwnProperty(key)) {
   output += '<li>' +
   '<a href = "' + infolink[key] + '">' + key + '</a>' + '</li>';
  } //if the links has the key property
 } // for...go through each link
}


答案 2 :(得分:0)

这里数组info.links的元素不是数组。 info.links的价值是对象,因此您无法检索&#39; blog / facebook / youtube&#39;像那样。密钥的输出将为&#39; 0/1/2&#39;

所以你可以试试这个

    for(var key in info.links){
        document.write('<li><a href="'+info.links[key].blog+'">Blog</a></li>');
        document.write('<li><a href="'+info.links[key].facebook+'">Facebook</a></li>');
        document.write('<li><a href="'+info.links[key].youtube+'">YouTube</a></li>');
        document.write('<li><a href="'+info.links[key].podcast+'">Podcast</a></li>');
        document.write('<li><a href="'+info.links[key].twitter+'">twitter</a></li>');
        document.write('<hr/>');
}

答案 3 :(得分:0)

终于设法得到我的预期。这是代码:

var output = "";
var linksCount = info.links;

for (var counter = 0; counter < linksCount.length; counter++) {
    for ( key in infolink[counter]) {
        if (infolink[counter].hasOwnProperty(key)) {
            output += '<li>' +
            '<a href = "' + infolink[key][counter] + '">' + key[counter] + '</a>' + '</li>';                            
        } //if the links has the key property
    } // for...go through each link

}