Доброго времени суток. не пойму в чем причина не могу обратиться к элементам json.
Имею на странице index.html
<textera id='text'>
{
"TaggedPDF": {
"Part": [
{
"H3": "Раздел",
"Sect": {
"Sect": [
{
"H4": "Таблица",
"P": [
"Состав",
"тип"
],
"Table": [
{
"TR": [
{
"TH": [
"Номер",
"Наименование",
"Ед. изм.",
"101",
"102",
"103",
"104"
]
},
{
"TH": [
"100",
"Затраты",
"ч"
],
"TD": [
"154",
"185",
"227",
"0,319"
]
},
{
"TH": [
"0101",
"разряд",
"-"
],
"TD": [
"3,8",
"3,8",
"3,8",
"3,8"
]
},
{
"TH": [
"0100",
"Затраты",
"ч"
],
"TD": [
"0,8",
"0,965",
"0,175",
"0,66"
]
},
{
"TH": [
"",
"МЕХАНИЗМЫ",
""
],
"TD": [
"",
"",
"",
""
]
},
{
"TH": "0302",
"TD": [
"Топор",
"ч",
"16",
"193",
"235",
"332"
]
},
{
"TH": "0204",
"TD": [
"Молоток",
"ч",
"16",
"193",
"235",
"332"
]
}
]
}
]
},
{
"H4": "Таблица",
"P": "Состав",
"Table": {
"TR": [
{
"TH": [
"Номер",
"Наименование",
"Ед. изм.",
"701"
]
},
{
"TD": [
"0100",
"Затраты",
"ч",
"71"
]
},
{
"TD": [
"",
"МЕХАНИЗМЫ",
"",
""
]
},
{
"TD": [
"0102",
"Молоток",
"ч",
"71"
]
}
]
}
}
]
}
}
]
}
}
</textera>
через валидотор проверил json все в норме
обрабатываю данные так через script.js
window.onload = parse; // при загрузке
function line(a){
console.log ('key=Table содержимое ', a); // рабочий вариант в 2х таблицах
console.log('key=Table содержимое ', a.TR[0].TH[0]); // для второй таблицы должно работать но нет ошибка Uncaught TypeError: Cannot read properties of undefined (reading '0')
}
function traverse(jsonObj){
if (jsonObj !== null && typeof jsonObj == "object" ) { // проверка на объект
Object.entries(jsonObj).forEach(([key, value]) => { // перебираем таблицы ключ значение
if (key=="Table") { //если ключ равняется Table
line(value); // обрабатываем дальше
}
traverse(value); // перебор вложения
});
}
}
function parse() {
let obj = JSON.parse(document.getElementById('text').value);
traverse(obj.TaggedPDF.Part[0].Sect.Sect); // выбираю нужную часть json
}
обращение ко всем элементам в line(a) для первой таблицы проходит успешно, в ручную могу обращаться ко всем элементам
а вот ко второй таблице не получается обращаться к элементам a.TR[0] и далее (.TH[0]) максимум отображает до a.TR после ошибка Uncaught TypeError: Cannot read properties of undefined (reading '0')