2009-11-14 6 views

ответ

7

Вы можете представлять его как простой объект:

{ 
    "-10" : 100, 
    "-1" : 102, 
    "3" : 44, 
    "12" : -87, 
    "12345" : 0 
} 

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

for (var key in obj) { 
    if (obj.hasOwnProperty(key)) { 
    var value = obj[key]; 
    } 
} 

И если вы хотите получить доступ к конкретному элементу с помощью ключа, вы также можете использовать здесь в квадратных скобках property accessor:

obj['-10']; // 100 

Обратите внимание, что я использую метод hasOwnProperty внутри цикла for...in, это, чтобы предотвратить переборе свойства, определенные на более высоких уровнях цепи прототипов, которые могут вызвать проблемы и неожиданное поведение ... подробнее here.

+0

Да, я не думаю, что вы действительно могли бы переименовать его как Array в обычном режиме, так как есть отрицательные индексы. Объект есть. – bobince

1

Да, вы можете. Имя членов объекта JSON - это строки. Строки могут занимать какую-либо UTF-8 кодированное значение:

{ 
    "-10" : 100, 
    "-1" : 102, 
    "3"  : 44, 
    "12" : -87, 
    "12345" : 0 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^