在javascript中为JSON生成模式
我正在寻找一个免费的JS库/工具,用于为JSON数据生成JSON模式。 最后我有一个函数,它接受两个参数jsonData和defaultRequired在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' 函数
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));
只是为了检查-您正在寻找一种动态生成模式的方法,而不是验证它们?是的,我只想生成模式,。。。而不是验证它们