0
我有一個JSON通過提供路徑搜索JSON字符串
情況1示出以下
var json = {
"name": "Soft Drinks",
"T2": [
{
"name": "Bottled",
"T3": [
{
"name": "Apple",
"leaf": [
{
"name": "Apple 500 ML"
},
{
"name": "Apple 1 Ltr"
}
]
}
]
},
{
"name": "Fountain",
"T3": [
{
"name": "Apple",
"leaf": [
{
"name": "Apple Regular, 500 ML"
}
]
}
]
},
{
"name": "Tin",
"T3": [
{
"name": "Apple",
"leaf": [
{
"name": "Apple Regular, 300 ML"
}
]
}
]
}
]
}
我想查詢的JSON:
例如,如果我提供路徑爲
var patharray = ["Soft Drinks","Bottled"] ; //(Bottled doesn't have leaf)
我需要的輸出是Apple
情況2:
例如,如果我提供作爲
var patharray = ["Soft Drinks","Bottled","Apple"] ; //(Apple has got leaf)
我所需要的輸出的路徑是
"leaf": [
{
"name": "Apple 500 ML"
},
{
"name": "Apple 1 Ltr"
}
]
我嘗試使用以下的方法,但現在它不起作用。
function findElement(obj, patharray, index) {
var res = '';
if(index < patharray.length) {
var searchStr = patharray[index];
index++;
for(each in obj) {
if(obj[each] instanceof Array) {
var found = false;
for(var i=0;i<obj[each].length;i++) {
if(obj[each][i].name == searchStr) {
res = obj[each][i];
if(index<patharray.length) {
console.log('search again')
res = findElement(obj[each][i], patharray, index);
}
found = true
break;
}
}
if(found) {
break;
}
}
}
return res
}
}
var patharray = ["Ice creams","Stick","Frosty"] ;
console.log(findElement(json, patharray, 0));
有可能是一個庫這一點。 – Piwwoli
可否請您告訴圖書館名稱。 – user974802