У меня есть редкий массив, который я хочу представить в JSON. Например:Как представить разреженный массив в JSON?
-10 => 100
-1 => 102
3 => 44
12 => -87
12345 => 0
Как я могу это сделать? Я могу сделать это?
У меня есть редкий массив, который я хочу представить в JSON. Например:Как представить разреженный массив в JSON?
-10 => 100
-1 => 102
3 => 44
12 => -87
12345 => 0
Как я могу это сделать? Я могу сделать это?
Вы можете представлять его как простой объект:
{
"-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.
Да, вы можете. Имя членов объекта JSON - это строки. Строки могут занимать какую-либо UTF-8 кодированное значение:
{
"-10" : 100,
"-1" : 102,
"3" : 44,
"12" : -87,
"12345" : 0
}
Да, я не думаю, что вы действительно могли бы переименовать его как Array в обычном режиме, так как есть отрицательные индексы. Объект есть. – bobince