当前位置: 首页 > 知识库问答 >
问题:

当json.stringify抛出错误时,循环引用到底从哪里开始?

慕容弘懿
2023-03-14

将对象传递给json.stringify会引发“将循环结构转换为JSON”的错误,但我不确定原因。

我通过服务器端Node.js传递对象

app.get('/', function(req,res){
    res.render('index.jade', {object: object});
});

敬玉石

script var table = !{JSON.stringify(object)};

但是我没有理由相信对象有循环引用。事实上我做了一个

console.info(JSON.stringify(req.user.table.export))

就在res.render之前,它工作得很好!

有没有办法精确地知道循环引用是从哪里产生的?

共有1个答案

东门晨
2023-03-14

在玉里

- var cache = [];
script var table = !{JSON.stringify(table,function(key, value) {if (typeof value === 'object' && value !== null) {if (cache.indexOf(value) !== -1) {console.log('Found Circular reference: '+key);return;}cache.push(value);}return value;})};
- cache = null;

输出

{“玩家”:[{“ID”:“53179FD401D540B8C5000001”,“用户名”:...
找到循环引用:表
不推荐使用连接属性。使用getConnections()M
找到循环引用:所有者
找到循环引用:套接字
找到循环引用:存储
找到循环引用:管理器
找到循环引用:mime
找到循环引用:mime
找到循环引用:mime
找到循环引用:mime
找到循环引用:用户
找到循环引用:用户
找到循环引用:用户
找到循环引用:用户
找到循环引用:用户找到循环引用:_idleprev
找到循环引用:_idlenext
找到循环引用:j1syyxsoi8lew5dnygua
找到循环引用:manager
找到循环引用:store
找到循环引用:table

来源

不知道为什么会发生...(链接到/Jade github上的问题)

 类似资料:
  • 我真的不知道是什么导致了这个错误,也许你们中的一个知道。 首先,我想声明,我有两个站点,并运行与完全相同的源/数据库,其中一个工作良好。 所以我的第二个站点(见下图)突然出现了错误,导致下拉菜单、图表和侧边栏无法加载/部分加载。所以我做的第一件事是上传一个完整的备份/DB,从它工作的时候开始。清除了缓存,我仍然得到完全相同的错误。我甚至把所有的东西都转移到了一个新的服务器上。仍然得到同样的错误。然

  • 列表表 > id 姓名 疾病 食谱 方向 我只想得到行 $row['食谱']; $row['方向']; 如果“疾病”列的值等于highblood。我该怎么做?

  • 我试图从Selenium驱动ChromeDriver启动的google-chrome浏览上下文中检索的值。 使用google-chrome-devtools,我可以检索和,如下所示: 但是使用Selenium的方法,我可以提取,但是会引发以下循环引用错误: > 代码块: 控制台输出: 我已经通过了以下关于循环引用的讨论,我理解了这个概念。但我不知道我应该如何在这里解决这个问题。 null

  • 我想循环存储过程的结果。我的代码: 我不明白为什么这是抛出必须声明c_curs的错误: 从命令-开始中的第7行开始时出错 结束<错误报告- ORA-06550:第2行,第24列: PLS-00201:必须声明标识符C_CURS

  • 我是Kafka的新手,在尝试一个示例场景时,Kafka生产者以JSON格式向消费者发送用户详细信息。我访问过类似的问题,但我无法得到我需要的答案。 如果我在终端中运行任何一个生产者或消费者,在spring boot中运行另一个生产者或消费者,我不会面临任何问题。错误发生在无限循环中(当生产者和消费者都从不同的spring boot项目启动时): 我在下面提到了消费者配置中的反序列化和受信任包: 我

  • 我试图在返回Object的方法中简单地从用户获得输入。由于某种原因,将引发此错误: 线程“main”java.lang.reflect.invocationTargetException在java.base/jdk.internal.reflect.nativeMethodAccessorImpl.invoke0(原生方法)在java.base/jdk.internal.reflect.nativ