jQuery getJSON打印数组,其中name是字符串

时间:2016-03-09 14:20:31

标签: javascript jquery mysql json

我有一些使用php和mysql的好习惯,现在我开始使用JSON。

我创建了一个简单的json索引,其中包含文件夹及其中的项目的路径:

NoMethodError: undefined method `[]' for nil:NilClass
from (pry):58:in `block in __pry__'

现在这里是我的jquery,现在返回大量数据,包括有关内容的信息:

{ "foldery" : [
    {
      "foName": "website/img/bg",
      "files" : [
        "website/img/bg/bg1.jpeg",
        "website/img/bg/bg2.jpg",
        "website/img/bg/bg3.jpg",
        "website/img/bg/bg4.jpeg"
      ]
    },
    {
      "foName": "website/img/post1",
      "files" : [
        "website/img/post1/a.jpeg",
        "website/img/post1/b.jpg",
        "website/img/post1/c.jpeg",
        "website/img/post1/d.jpg"
      ]
    }
  ]
}

我想要它做什么,在mySql中看起来像这样:

  $.getJSON("nameindex.json", function(data) {
      console.log(data);
  });

因此结果将是一个包含post1内所有文件的数组。

不幸的是,经过2个小时的尝试,我只有简单的console.log代码。 任何帮助都将很乐意欣赏

1 个答案:

答案 0 :(得分:0)

您需要遍历数组并检查forName是否相等

function select(o, foName) {
    var length = o.foldery.length;
    for(var i = 0; i < length; i++){
        if (o.foldery[i].foName == foName) {
            return o.foldery[i].files;
        }
    }
}

var result = select(o, "website/img/post1")
console.log(result);

结果

[ 'website/img/post1/a.jpeg',
  'website/img/post1/b.jpg',
  'website/img/post1/c.jpeg',
  'website/img/post1/d.jpg' ]