我正在寻找一个免费的 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/