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

在JSON模式中检查循环依赖关系的任何工具

瞿和硕
2023-03-14

我正在使用JSON文件,并在Swagger 2.0解析器和验证器上对其进行验证。它验证了JSON文件,但给出了循环引用的错误。是否有任何免费工具或网站来检测循环引用在文件中的位置。

共有1个答案

柴茂材
2023-03-14

我想你要找的东西在这里已经有了答案。只需打开您的浏览器控制台并键入此javascript:

function isCyclic(obj) {
  var keys = [];
  var stack = [];
  var stackSet = new Set();
  var detected = false;

  function detect(obj, key) {
    if (typeof obj != 'object') { return; }

    if (stackSet.has(obj)) { // it's cyclic! Print the object and its locations.
      var oldindex = stack.indexOf(obj);
      var l1 = keys.join('.') + '.' + key;
      var l2 = keys.slice(0, oldindex + 1).join('.');
      console.log('CIRCULAR: ' + l1 + ' = ' + l2 + ' = ' + obj);
      console.log(obj);
      detected = true;
      return;
    }

    keys.push(key);
    stack.push(obj);
    stackSet.add(obj);
    for (var k in obj) { //dive on the object's children
      if (obj.hasOwnProperty(k)) { detect(obj[k], k); }
    }

    keys.pop();
    stack.pop();
    stackSet.delete(obj);
    return;
  }

  detect(obj, 'obj');
  return detected;
}

然后调用IsCycial(/*Json String*/),结果将显示循环引用的位置。

 类似资料:
  • 问题内容: 再次出现这种情况时,我到处乱跑,我快要疯了。 我希望Python首先会分析所有文件,以便它从一开始就知道所有标识符(我认为就像Java一样)。 我有一个“ main.py”和一个“ gui.py”。每个文件都包含一个类,该类使用另一个文件中的类。当我尝试运行“ main.py”时,解释器导入“ gui”,然后在“ gui.py”中导入“ main”,然后处理整个main模块,并说:“

  • 我花了5个多小时试图解决这个问题。有什么问题吗? 我补充道: 组织。格拉德尔。configureondemand=true 但问题依然存在 建筑gradle(模块:应用程序) 建造。gradle(项目:myproject) //顶级构建文件,您可以在其中添加所有子项目/模块通用的配置选项。

  • 问题内容: 我最近一直在使用nodejs,并且仍然要处理模块系统,因此很抱歉这是一个明显的问题。我想要大致如下的代码: a.js (主文件与节点一起运行) b.js 我的问题似乎是我无法从ClassB实例中访问ClassA实例。 有没有正确/更好的方法来构造模块来实现我想要的?是否有更好的方式在模块之间共享变量? 问题答案: 尽管node.js确实允许循环依赖,但正如您所发现的那样,它可能很杂乱,

  • 我最近一直在使用nodejs,并且仍然在掌握模块系统,所以如果这是一个明显的问题,请原谅。我想要大致如下的代码: a.js(主文件与节点一起运行) b.js 我的问题似乎是我无法从ClassB的实例中访问ClassA的实例。 有没有正确/更好的方法来构建模块以实现我想要的?有没有更好的方法在模块之间共享变量?

  • 问题内容: 我是一个长期的python开发人员。我正在尝试Go,将现有的python应用程序转换为Go。它是模块化的,对我来说真的很好用。 在Go中创建相同的结构后,我似乎陷入了周期性的导入错误,这比我想要的要多得多。从未在python中出现任何导入问题。我什至不必使用导入别名。所以我可能有一些在python中不明显的周期性导入。我实际上发现那个奇怪。 无论如何,我迷路了,试图在Go中修复这些问题

  • 我有两个服务组件:PromiseService。服务ts(处理延迟调用和异步调用) 和员工ervice.service.ts(处理员工信息) 但是,我得到了以下错误: 检测到循环依赖关系:员工ervice.service.ts- 我试图更改Promise Service组件并删除以下行: 但是,出现了另一个错误:未处理的promise拒绝:无法读取未定义的属性“updateid”;区域:;任务:p