Возвращение количества элементов объекта JSON - PullRequest
0 голосов
/ 30 октября 2011

Мне нужно перебрать каждый элемент в объекте JSON, и у меня возникли проблемы при разработке способа подсчета количества элементов в этом объекте, чтобы я мог использовать цикл for для итерации. Вот мой объект:

this.worldData =[
                    {"0":{"1":"0", "2":"0"},
                    "1":{"1":"0", "2":"0"},
                    "2":{"1":"0", "2":"0"}}
                ];

И что я пытаюсь:

alert(this.worldData.length);

Проблема в том, что он всегда возвращает 1, независимо от того, сколько элементов я поместил в объект JSON.

Ответы [ 2 ]

1 голос
/ 30 октября 2011

У вас есть контроль над данными JSON?Длина возвращает 1, потому что в массиве только один элемент.Это из-за того, как данные JSON структурированы здесь.Если вы хотите что-то более простое для перебора, вам нужно что-то вроде этого:

this.worldData = [
                     {"1":"0","2":"0"},
                     {"1":"0","2":"0"},
                     {"1":"0","2":"0"}
                 ]

Обратите внимание, что объекты (обозначенные {}) не имеют свойства длины, а массивы (обозначенные * 1005).*) до.

0 голосов
/ 30 октября 2011

Вы оборачиваете все свои объекты в один объект (первую и последнюю фигурные скобки). Попробуйте это:

this.worldData =[
  {"0":{"1":"0", "2":"0"}},
  {"1":{"1":"0", "2":"0"}},
  {"2":{"1":"0", "2":"0"}}
];

jsFiddle пример .

...