我正在尝试将具有循环引用的对象从node.js服务器传递到客户端javascript。
服务器(node.js):
var object = { circular: object } //.... app.get('/', function(req, res){ res.render('index.jade', {object: object}); });
客户端Jade / Javascript
script var object = !{JSON.stringify(object)};
在这里,我得到object包含循环引用的错误。
object
任何方式来获得object在客户端JavaScript, 有 或没有 循环引用?
道格拉斯·克罗克福德(Douglas Crockford)对此有一个解决方案,我之前已经成功地使用它来解决此问题:Cycle.js
而不是仅仅使用stringify,parse您将首先decycle使用retrocycle
stringify
parse
decycle
retrocycle
var jsonString = JSON.stringify(JSON.decycle(parent)); var restoredObject = JSON.retrocycle(JSON.parse(jsonString));
JSFiddle