循環参照を含むオブジェクトがあり、そのJSON表現を確認したいと思います。たとえば、このオブジェクトを作成すると、次のようになります。
var myObject = {member:{}};
myObject.member.child = {};
myObject.member.child.parent = myObject.member;
と電話してみてください
JSON.stringify(myObject);
当然のことながら、「再帰が多すぎます」というエラーが表示されます。「子」オブジェクトにはその「親」への参照があり、親にはその子への参照があります。JSON表現は完全に正確である必要はありません。これは、データをサーバーに送信したり、オブジェクトをファイルにシリアル化したりするためではなく、デバッグにのみ使用しているためです。parent
JSON.stringifyに特定のプロパティ(この場合は子オブジェクトのプロパティ)を無視するように指示する方法はありますか?
{
"member" : {
"child" : {}
}
}
JSON.stringifyは関数であるすべてのプロパティを無視するため、私が考えることができる最も近い方法は、メンバーだけでなくメソッドを使用することgetChild()
ですgetParent()
が、必要がない場合はそうしません。