javascript - 在 JavaScript 中生成 JSON 架构

标签 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 对象,它是 jsonData 的 JSON 模式。

我已经浏览过这个http://www.jsonschema.net/ 由于该工具在线。我们必须手动插入数据并获取 JSON 模式。但我没有找到任何方法将其链接到我的应用程序中并获得上述功能并在我自己的应用程序中同样工作。

我还浏览了https://github.com/perenecabuto/json_schema_generator 但这个是用 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));

关于javascript - 在 JavaScript 中生成 JSON 架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23578029/

相关文章:

php - <a> 标签中带有 PHP vars onclick 的 JS 函数不起作用

javascript - JavaScript 中的动画与模数

javascript - 从 JSON 访问数据返回 "undefined"

javascript - JSON 未捕获类型错误

c# - 带有日期字段的 JSON 模式验证

javascript - Jquery:如何从选择元素中获取选定的选项

javascript - FETCH API 返回 [object Object]

ios - 发送空格和点时 Json 崩溃

javascript - 嵌套对象的 AJV 模式验证

javascript - 如何在 jsonschema-form lib 中的 radio 输入之前添加图像?