2016-03-09 17 views
1

我有一些使用php和mysql的良好做法,现在我开始使用JSON。jQuery getJSON打印数组,其中名称是字符串

我做了包含路径的文件夹一个简单的JSON指数,和里面的物品他们:

{ "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" 
     ] 
    } 
    ] 
} 

现在,这里是我的jQuery,现在返回数据的大混乱,地方包括有关的信息里面的内容:

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

我想什么它做,MySQL中是这样的:

SELECT files FROM foldery WHERE foName = "website/img/post1" 

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

不幸的是,经过2个小时的尝试,我没有比简单的console.log代码更多的东西。 任何帮助将非常乐意赞赏

+0

你有从你的SQL数据库创建脚本? :) – Jelmer

回答

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' ] 
+0

和O这里是从 '$ .getJSON(“nameindex.json”,函数(O){...});'?的数据。 – aln447

+0

@ aln447是的,你说得对,'o'就是你的json数据 – isvforall

+1

非常感谢。奇迹般有效 – aln447