我有一些使用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代码。 任何帮助都将很乐意欣赏
答案 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' ]