Я пытаюсь понять проблему, с которой я сталкиваюсь с JSON и перебираю объекты. Я никогда не использовал JSON раньше, поэтому, пожалуйста, дайте мне знать, если ошибки синтаксиса вызывают мои проблемы.JSON looping через вспомогательные объекты
У меня есть этот объект JSON определен:
var columnData = {
"obj1":{Heading: "Test 1", Required: "True", DataTypeCode:"str", DropDownOptions: "", ColumnId: "1"},
"obj2":{Heading: "Test 2", Required: "False", DataTypeCode:"dropdown", DropDownOptions: "Alpha,Beta,Gamma,Delta", ColumnId: "2"},
"obj3":{Heading: "Test 3", Required: "True", DataTypeCode:"int", DropDownOptions: "", ColumnId: "3"}
};
И я передаю его в функцию, которая делает это:
for (var col in columnData) {
r += '<td><input type="text" name="col' + col.ColumnId + '" value="' + col.Heading + '" /></td>'
}
точек останова в FireBug подтверждает, что columnData является объект, он имеет три вспомогательных объекта, а вспомогательные объекты имеют ожидаемые свойства и значения. Но это выход я получаю после того, как функция называется:
<td><input name="colundefined" value="undefined" type="text"></td>
К сожалению, я думаю, что мое отсутствие опыта работы с JSON делает результаты моих попыток отслеживать ответ вниз непригодным. Как написать цикл, который будет правильно получать вспомогательные объекты columnData?
Hm, выглядит как объект буквально. Где JSON? –
Не так ли? Наверное, я недостаточно знаю об объектах JSON и Javascript, чтобы узнать разницу. Я получил синтаксис из какого-то другого вопроса JSON. В любом случае, пока это работает, мне все равно, если это технически JSON или нет. – William
Что касается JavaScript, JSON извлекается из внешнего файла '.json' (с сервера) в виде строки, которая затем анализируется с помощью' JSON.parse' в объект JavaScript. С другой стороны, когда у вас есть 'var obj = {...};', это объектный литерал и не имеет отношения к JSON. –