2013-07-04 60 views
0

我试图从嵌套JSON文件看起来像这样提取值:提取键值跨越嵌套JSON

var mymenu = {"menu": [{"page": {"url": "http://foo.bar.com","random stuff": {"junk": "rubbish"}}},{"page": {"feed": "http://foo.bar.com"}},{"menu": [{"submenu": [{"page": {"feed": "http://foo.bar.com"}}]}]}]}; 

我想提取的关键是与包含URL的饲料。我已经尝试了一个for ... in循环到检索的JSON中,但是我只能拉到Feed所在的对象,导致整个字符串化对象。有没有办法从JSON文件中获取我需要的键?

+0

var是一个有效的变量名吗? – Thilo

+0

修复了这个变量。 @felix - 我根本找不到那个线程,看起来可能是我需要的帮助 –

回答

0

我刚刚在JSONLint上验证了你的json,它似乎无效。

Parse error on line 7: 
...     }   }  
----------------------^ 
Expecting 'STRING' 

试试这个JSON,并记住一个name分配给您的变量。

var mymenu = {"menu": [{"page": {"url": "http://foo.bar.com","random stuff": {"junk": "rubbish"}}},{"page": {"feed": "http://foo.bar.com"}},{"menu": [{"submenu": [{"page": {"feed": "http://foo.bar.com"}}]}]}]}; 

下一页通过JSON迭代是不是太糟糕,只是把它当做一个multi dimensional阵列key value对。例如,如果您运行的是Firefox,获得firebug是个好主意。

for(var i = 0; i < mymenu['menu'].length; i) 
{ 
    console.log(mymenu['menu'][i]); 
} 
+0

我在粘贴的JSON上的坏处是试图重做一个示例来显示。 –