Не так много разработчиков помнят, что вторым параметром в JSON.stringify передаётся функция-реплейсер, но, подозреваю, ещё меньше тех, кто знает, что вместо функции можно передать массив — белый список полей объекта для фильтрации (кому вообще это поведение понадобилось в API в таком виде?).



Там ещё и третий параметр есть, space, который может быть либо числом, либо строкой и от этого тоже зависит его поведение.



Вот такое ужасное API в спеке, в лучших традициях боевых апишек живых проектов.