Я пытаюсь извлечь значение из объекта JSON. Ниже приведены данные. .. Я пытаюсь Переберите все объекты массива и получить значениеЗацикливание массива внутри JSON
Employee [] gradeDetails.objDetails [] SNO
Ниже приведен код, который я до сих пор:
var Obj = {
"Employee": [{
"type": "grade A",
"gradeDetails": {
"objDetails": [{
"sno": "100",
"name": "",
"desg": "writer",
"salary": "1000000"
}, {
"sno": "200",
"name": "",
"desg": "developer",
"salary": "1000"
}, {
"sno": "300",
"name": "",
"desg": "",
"salary": "8000"
}]
}
}]
}
var path = "Employee[].gradeDetails.objDetails[].sno";
var arrayPos = [
[0, 0],
[0, 1],
[0, 2]
];
arrayPos.forEach(function(val) {
var data = getField(Obj, path, val);
})
function getField(postObj, path, arrayPosition) {
arrayPosition = arrayPosition.slice(Math.max(arrayPosition.length - 2, 0));
var postObj = JSON.parse(JSON.stringify(postObj));
var pathArray = path.split(".");
pathArray.forEach(function(key) {
if (key.indexOf("[]") != -1) {
var position = 0;
try {
var flag = false;
if (arrayPosition.length == 1) {
flag = true;
}
if (arrayPosition.length > 1) {
position = arrayPosition.shift();
}
var pos = 0;
var arrOcc = -1;
var occIndex = -1;
while (pos != -1) {
pos = path.indexOf("[]", occIndex + 1);
arrOcc += 1;
occIndex = pos;
}
if (arrOcc == 1) {
position = arrayPosition[arrayPosition.length - 1];
console.log("Postion" + position);
}
key = key.substring(0, key.indexOf("["));
postObj = postObj[key];
if (arrOcc == 2) {
if (flag) {
if (postObj.length == 2) {
position = arrayPosition[arrayPosition.length - 1];
}
}
}
if (position == undefined) position = 0;
postObj = postObj[position];
} catch (e) {}
} else {
try {
postObj = postObj[key];
} catch (e) {}
}
});
console.log("Result[" + arrayPosition + "]" + postObj)
return postObj;
}
Поскольку существует три объекта массива, я ожидал три различных значения sno, как показано ниже. Может кто-нибудь помочь мне узнать, что я ошибаюсь в своем коде. Потому что я получаю всегда результат как 100.
Result[0]100
Result[1]200
Result[2]300
Мой полный код доступен в этой ссылке JSFIDDLE
Отправьте соответствующие части своего кода здесь. –