假设我有一个类似以下的JSON:
{
"filestore": {
"root": {
"abc": {
"def": {
"wavs": {
"wav": [
{
"id": "1",
"file": "\\abc\\def\\a.wav",
"checked": "false"
},
{
"id": "2",
"file": "\\abc\\def\\b.wav",
"checked": "false"
},
{
"id": "3",
"file": "\\abc\\def\\c.wav",
"checked": "false"
}
]
}
},
"ghi": {
"wavs": {
"wav": [
{
"id": "1",
"file": "\\abc\\ghi\\a.wav",
"checked": "false"
},
{
"id": "2",
"file": "\\abc\\ghi\\b.wav",
"checked": "false"
},
{
"id": "3",
"file": "\\abc\\ghi\\c.wav",
"checked": "false"
}
]
}
},
"wavs": {
"wav": [
{
"id": "4",
"file": "\\abc\\x.wav",
"checked": "false"
},
{
"id": "5",
"file": "\\abc\\y.wav",
"checked": "false"
},
{
"id": "6",
"file": "\\abc\\z.wav",
"checked": "false"
}
]
}
},
"wavs": {
"wav": [
{
"id": "7",
"file": "p.wav",
"checked": "false"
},
{
"id": "8",
"file": "q.wav",
"checked": "false"
},
{
"id": "9",
"file": "r.wav",
"checked": "false"
}
]
}
}
}
}
现在,我想要“root”中的所有实体。我知道我们可以使用JSON.parse在Javascript中创建一个JSON对象,并像filestore.root.abc等一样单独访问它们。
但是,我想要一个可以提取特定标签内所有标签的实用程序。就像,如果我发送该实用程序“filestore.root”,它应该返回一个数组[“abc”,“wavs”]。同样,如果我发送“filestore.root.abc”,它应该返回[“def”,“ghi”,“wavs”]。
这样的东西在Javascript中可能吗?请告诉我。我非常喜欢javascript,但我也对jquery开放。非常感谢。
答案 0 :(得分:3)
Object.keys(filestore.root);
在现代浏览器中返回["abc", "wavs"]
。检查这个相关的SO答案:https://stackoverflow.com/a/208020/2193252
答案 1 :(得分:0)
如果你喜欢DIY我正在使用这个
var result = [];
for (var key in filestore.root) result.push(key);
alert(JSON.stringify(result));