JSON.parse of JavaScript

Мало кто помнит/знает, что у функции JSON.parse в JavaScript есть второй параметр, функция reviver.
Туда может быть передана функция, которая последовательно получит все пары (key, value), полученные при парсинге JSON и которая позволяет изменить value (функция должна вернуть новое значение value

Какое предполагается у этого применение? Возможно, если в поле key встречается date, нужно попытаться преобразовать value в объект типа date. Или же если среди свойств value есть определённое (к примеру className или type, можно попытаться создать объект определённого класса с помощь конструктора. С датой не очень-то удобно. Проще было предусмотреть в JSON-формате запись даты без преобразования в строку. 

Со вторым случаем проще. Если следовать соглашению, что у каждого объекта должно быть поле type, то в функции reviver вполне возможно заменить JSON на объекты, созданные конструктором.

P. S. При последнем вызове в reviver будет передана пара key=»», value =<сам полученный при парсинге объект>


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *