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