Почему при передаче "\n" в JSON.stringify() вертикальный отступ увеличивается с каждым уровнем вложенности?
Я хотел немного изменить отображение выводимой JSON строки, но столкнулся с тем, что при наличии вложенных обьектов, вертикальный отступ по какой-то причине увеличивается с каждым уровнем вложенности. Чем может быть вызвано такое поведение и как его пофиксить?
let user = {
prop1: 1,
prop2: {
prop1: 2,
prop2: {
prop1: 3
}
}
};
console.log(JSON.stringify(user, null, "\n "));
Ответы (1 шт):
Третий параметр метода JSON.stringify
отвечает за отступ слева (indentation) для каждого уровня вложенности (т.е. если Вы укажете пробел то следующий уровень вложености после него будет отображен как 2 пробела, потом 3 и т.д.)
В вашем конкретном случае получается отступ по вертикали и только он (потому что \n
переводит каретку и препятсвует росту отступа вправо) Я отобразил то что происходит на иллюстрации ниже, надеюсь будет понятнее.
Решение: Пофиксить можно только убрав перевод каретки (он итак вставляется при наличии третьего аргумента в вызове метода)