在javascript中为JSON生成模式

在javascript中为JSON生成模式,javascript,json,jsonschema,Javascript,Json,Jsonschema,我正在寻找一个免费的JS库/工具,用于为JSON数据生成JSON模式。 最后我有一个函数,它接受两个参数jsonData和defaultRequired jsonData (js object) => JSON data of which JSON schema to be found defaultRequired (boolean) => boolean field if we need to make all the properties 'must required' 函数

我正在寻找一个免费的JS库/工具,用于为JSON数据生成JSON模式。 最后我有一个函数,它接受两个参数jsonData和defaultRequired

jsonData (js object) => JSON data of which JSON schema to be found
defaultRequired (boolean) => boolean field if we need to make all the properties 'must required'
函数应该返回一个JS对象,它是jsonData的JSON模式

我经历过这个 因为工具是在线的。我们必须手动插入数据并获取JSON模式。但是我没有找到任何方法将其链接到我的应用程序中,并在我自己的应用程序中使用上述函数

我也经历过 但这是用python编写的,所以可能无法在我的应用程序中使用


有人能推荐一个好的JS库吗?

下面的JS函数将JSON模式生成为一个对象。但它不会检查属性是否为强制属性

function getSchema(id, obj) {

  if (Array.isArray(obj)) {
    var  retObj = getSchema(id, obj[0]);
    delete retObj.title;
    return {
      'title': id,
      'type': 'array',
      'items': retObj
    };
  } else if (typeof obj === 'object') {
    var retObj = {
      'title': id,
      'type': 'object'
    };
    retObj.properties = {};
    for (var prop in obj) {
      if (obj.hasOwnProperty(prop)) {
        retObj.properties[prop] = getSchema(prop, obj[prop]);
        delete retObj.properties[prop].title;
      }
    }

    return retObj;
  } else {
    return {
      'title': id,
      'type': typeof obj
    };
  }
}
您可以按如下方式调用该函数

k = {
  a: 1,
  b: '2',
  c: [3]
}


console.log(getSchema('Sample Object', k));

只是为了检查-您正在寻找一种动态生成模式的方法,而不是验证它们?是的,我只想生成模式,。。。而不是验证它们