У меня есть объект, содержащий круговые ссылки, и я хотел бы посмотреть его представление JSON. Например, если я построить этот объект:Ошибка «слишком много рекурсии» при вызове JSON.stringify на большом объекте с круговыми зависимостями
var myObject = {member:{}};
myObject.member.child = {};
myObject.member.child.parent = myObject.member;
и попытаться вызвать
JSON.stringify(myObject);
я получаю ошибку «слишком много рекурсии», что не удивительно. Объект «child» имеет ссылку на его «родительский элемент», а родитель имеет ссылку на его дочерний элемент. Представление JSON не должно быть абсолютно точным, поскольку я использую его только для отладки, а не для отправки данных на сервер или сериализации объекта в файл или что-то в этом роде. Есть ли способ сказать JSON.stringify просто игнорировать определенные свойства (в данном случае parent
свойства дочернего объекта), так что я хотел бы получить:
{
"member" : {
"child" : {}
}
}
Ближайшим я могу думать о том, чтобы использовать getChild()
и getParent()
вместо простых членов, потому что JSON.stringify игнорирует любые свойства, которые являются функциями, но я не хочу этого делать, если мне это не нужно.
Оба подхода, которые были предложены еще дает мне «слишком много рекурсии» ошибки - может быть, есть какой-то другой странную зависимость, которую я не вижу. – MatrixFrog