Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Any tool to check circular dependency in a JSON schema

Tags:

I am using JSON file and validated it on Swagger 2.0 Parser and validator it validates it but give error of circular reference, is there any free tool or website to detect the position of circular reference in a file.

like image 489
Syed Uzair Uddin Avatar asked Apr 04 '17 05:04

Syed Uzair Uddin


1 Answers

I think what you are looking for is already answered here. Simply open your browser console and type this 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;
}

Then you call IsCyclic(/*Json String*/), the result will show where the circular reference is.

like image 138
Thomas Suberchicot Avatar answered Sep 23 '22 10:09

Thomas Suberchicot