Структуры JavaScript, включающие циклические ссылки, не могут быть сериализованы с помощью «простого» JSON.stringify. Пример:
Копия
a = { name: 'Groucho' };
b = { name: 'Harpo', sibling: a };
a.sibling = b;
Выполнение JSON.stringify (a) приведет к ошибке:
Копировать
Ошибка типа: преобразование круговой структуры в формат JSON
Вы ничего не можете с этим поделать, кроме указания пользовательской функции сериализатора, которая обнаруживает и очищает циклические ссылки. Существуют существующие решения, поэтому вам не нужно думать о них самих, например, https://github.com/WebReflection/circular-json
Для приведенной выше структуры вы получите следующее.
Копировать
{"name":"Groucho","sibling":{"name":"Harpo","sibling":"[Circular ~]"}}
Обратите внимание, как [Циркуляр ~] показывает путь к указанному объекту. В более глубоко вложенных структурах вы увидите что-то вроде [Циркуляр ~ .rows.1].