Я некоторое время искал ответы на этот вопрос и, похоже, не вижу очевидного.
Я пытаюсь вернуть значение по индексу json строки. Хотя ключ кажется совпадающим, он возвращает -1 для индекса. Я просто хочу значение, в данном случае «Ethan» для ключевого имени пользователя. Я проверил, что строки действительны json.
for (var r in rows) {
table_body += '<tr>';
for (var c in cols) {
table_body += '<td>';
//table_body += Object.keys(rows[r]);
var idx = c;
console.log(rows[r]);
var o = rows[r]; //the object
//var key = Object.keys(o)[idx];
var key = cols[c].title;
var index = Object.keys(cols).indexOf(key);
console.log('key: '+key);
console.log('index: ' + index);
console.log('cols: ');
console.log(cols[c]);
console.log('c: ' + c);
var value = o[index];
table_body += value;
table_body += '</td>';
}
table_body += '</tr>';
}
table_body += '</table>';
Это вывод в консоли, показывающий "o", который является json, ключ, который является именем пользователя, и индекс этого ключа -1
РЕДАКТИРОВАТЬ добавлено больше журналов ...
РЕДАКТИРОВАТЬ Это json для строк ...
[{"id":136,"userName":"ethan","halfDays":1,"fullDays":11,"approvedDept":null,"approvedExec":true,"type":"vacation","createDate":"\/Date(1332863557393)\/","approvedDeptDate":null,"approvedExecDate":null,"leaveBegin":"\/Date(1311570000000)\/","leaveEnd":"\/Date(1311570000000)\/","notes":"Beginning Balance","overage":false,"department":null,"reminderSent":true},{"id":381,"userName":"ethan","halfDays":0,"fullDays":1,"approvedDept":null,"approvedExec":true,"type":"sick","createDate":"\/Date(1336055792800)\/","approvedDeptDate":null,"approvedExecDate":"\/Date(1336021200000)\/","leaveBegin":"\/Date(1335502800000)\/","leaveEnd":"\/Date(1335502800000)\/","notes":null,"overage":false,"department":"Marketing","reminderSent":true}]
и столбцов ...
[{ "title":"userName" },{ "title":"leaveBegin" },{ "title":"leaveEnd" }]