Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   JSON пропуск индекса (https://javascript.ru/forum/misc/49856-json-propusk-indeksa.html)

Gigatrop 31.08.2014 19:22

JSON пропуск индекса
 
Здравствуйте.
В js у массива может быть пропущен индекс, например:
var a = [];
a[10] = true;

Вопрос - как объект, с такими массивами в качестве значений, кодировать в JSON? или там только индексы по порядку с нуля?
Спасибо.

kobezzza 31.08.2014 19:26

var arr = [];
arr[10] = true;
alert(JSON.stringify(arr));

Gigatrop 31.08.2014 19:52

Спасибо. В json записывается null, что не то же самое что undefined в массиве. При обратном парсинге выйдет массив, не равнозначный изначальному. То есть узнать был ли где-то null реально, или ключ вообще не был задан - не возможно.
Что-то его не доделали, может пропуск значения между запятыми бы оставили.

Sweet 31.08.2014 20:28

Цитата:

Сообщение от Gigatrop
может пропуск значения между запятыми бы оставили.

Тогда это не json будет. Потому что пропуск, это что? Это undefined, а в json его нет. Да и вообще, объект уместнее, всё ровно небось for..in-ом проходишь:
var obj = {};
obj[10] = true;
alert( JSON.stringify(obj) );

Aetae 01.09.2014 08:36

Цитата:

Сообщение от Gigatrop (Сообщение 328338)
Спасибо. В json записывается null, что не то же самое что undefined в массиве. При обратном парсинге выйдет массив, не равнозначный изначальному. То есть узнать был ли где-то null реально, или ключ вообще не был задан - не возможно.
Что-то его не доделали

json разрабатывали как универсальный способ передачи данных, без привязки конкретно к javascript. Потому и нельзя "оставить пропуск", как и нельзя undefined, т.к. в других языках undefined совсем не такой няшный, удобный и простой как в js.


Часовой пояс GMT +3, время: 22:15.