Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 31.08.2014, 19:22
Новичок на форуме
Отправить личное сообщение для Gigatrop Посмотреть профиль Найти все сообщения от Gigatrop
 
Регистрация: 31.08.2014
Сообщений: 2

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

Вопрос - как объект, с такими массивами в качестве значений, кодировать в JSON? или там только индексы по порядку с нуля?
Спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 31.08.2014, 19:26
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

var arr = [];
arr[10] = true;
alert(JSON.stringify(arr));
__________________
kobezzza
code monkey
Ответить с цитированием
  #3 (permalink)  
Старый 31.08.2014, 19:52
Новичок на форуме
Отправить личное сообщение для Gigatrop Посмотреть профиль Найти все сообщения от Gigatrop
 
Регистрация: 31.08.2014
Сообщений: 2

Спасибо. В json записывается null, что не то же самое что undefined в массиве. При обратном парсинге выйдет массив, не равнозначный изначальному. То есть узнать был ли где-то null реально, или ключ вообще не был задан - не возможно.
Что-то его не доделали, может пропуск значения между запятыми бы оставили.
Ответить с цитированием
  #4 (permalink)  
Старый 31.08.2014, 20:28
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

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

Последний раз редактировалось Sweet, 31.08.2014 в 20:30.
Ответить с цитированием
  #5 (permalink)  
Старый 01.09.2014, 08:36
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,584

Сообщение от Gigatrop Посмотреть сообщение
Спасибо. В json записывается null, что не то же самое что undefined в массиве. При обратном парсинге выйдет массив, не равнозначный изначальному. То есть узнать был ли где-то null реально, или ключ вообще не был задан - не возможно.
Что-то его не доделали
json разрабатывали как универсальный способ передачи данных, без привязки конкретно к javascript. Потому и нельзя "оставить пропуск", как и нельзя undefined, т.к. в других языках undefined совсем не такой няшный, удобный и простой как в js.
__________________
29375, 35
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JSON внутри JSON kotkew AJAX и COMET 7 06.07.2014 15:17
Не могу распарсить JSON. gorenie jQuery 3 29.11.2013 22:26
Проблемы с jqGrid и JSON massacra_panda Библиотеки/Тулкиты/Фреймворки 1 08.10.2012 16:44
JSON или JSONP для запросов на другой сервер? Метод GET, для длинных сообщений? Kotakota jQuery 5 23.08.2011 23:12
jQuery. Обработка ошибок и JSON. mma_mma jQuery 3 19.07.2010 12:10