У меня есть объект, который содержит циклические ссылки, и я хотел бы взглянуть на его 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 игнорирует любые свойства, которые являются функциями, но я бы не стал этого делать, если у меня к.