code: function isJSON(value, visited) {
      // Adding value to array of visited values.
      (visited || (visited = [])).push(value);
              // If `value` is an atom return `true` cause it"s valid JSON.
      return  isPrimitive(value) ||
              // If `value` is an array of JSON values that has not been visited
              // yet.
              (isArray(value) &&  value.every(function(element) {
                                    return isJSON(element, visited);
                                  })) ||
              // If `value` is a plain object containing properties with a JSON
              // values it"s a valid JSON.
              (isFlat(value) && Object.keys(value).every(function(key) {
                  var $ = Object.getOwnPropertyDescriptor(value, key);
                  // Check every proprety of a plain object to verify that
                  // it"s neither getter nor setter, but a JSON value, that
                  // has not been visited yet.
                  return  ((!isObject($.value) || !~visited.indexOf($.value)) &&
                          !("get" in $) && !("set" in $) &&
                          isJSON($.value, visited));
              }));
  }
docs: Returns `true` if `value` is an array / flat object containing only atomic
  values and other flat objects.