Вы пытаетесь трактовать Object
как Array
, а Object
- это не Array
, это Object
.
Каждый раз, когда вы видите {}
в JSON, это означает «То, что содержится в этих священных скобках, является динамическим объектом». Когда вы видите []
, это означает «вот! Я массив» (из этого исключения есть заметные исключения: jQuery выполняет некоторую специальную работу, чтобы выглядеть как массив).
Итак, чтобы перебрать Object
, вам нужно использовать for... in
.
// eval BAD unless you know your input has been sanitized!.
var myObj = JSON.parse('{"notempty":true}');
// personally, I use it in for... in loops. It clarifies that this is a string
// you may want to use hasOwnProperty here as sometimes other "keys" are inserted
for( var it in myObj ) console.log( "myObj["+it+"] = " + myObj[it] );