Ste*_* C. 7 javascript json jsonschema node.js
经过一小时的搜索,我没有找到解决我的问题的方法,现在我希望有人能够在这里帮助我。
所以基本上我正在寻找的是一种使用 NodeJS 自动从 JSON(架构)文件生成 JavaScript 文件(*.js)的方法。我知道有像 fs.write 这样的东西,但我认为这肯定不适合我的问题。到目前为止,我还没有找到其他方法来创建我的 JavaScript 文件。
基本上我想翻译:
{
"type":"object",
"properties": {
"name": {
"type": "string"
},
"age": {
"type": "integer",
"default":12
},
"favorite_color": {
"type": "string"
},
"gender": {
"type": "string",
"enum": [
"male",
"female"
]
}
}
}
Run Code Online (Sandbox Code Playgroud)
转换为 JavaScript 代码,如:
var data = function() {
data.baseConstructor.call(this);
this.name = ko.observable("");
this.age = ko.obseravble(12);
this.favorite_color = ko.observable();
this.gender = ko.observable(data.genderModes.male);
}
data.genderModes = {
male: "male",
female: "female"
}
Run Code Online (Sandbox Code Playgroud)
有人能给我一个关于我的问题的提示吗?
我不知道如何将 json 转换为 js 函数,但如果您想从 json 模式创建对象,您可以使用json-schema-defaults。使用 json-schema-defaults 创建一个对象后,您可以使用Object.create创建另一个对象,并且可以将第一级属性添加到由 Object.create 函数创建的新对象。
var a = require('json-schema-defaults')({
"type":"object",
"properties": {
"name": {
"type": "string"
},
"age": {
"type": "integer",
"default":12
},
}
});
var b = Object.create(a,{
id:{ value:1 },
f:{ value:function() {
console.log('run lola run');
}
}
}
);
Run Code Online (Sandbox Code Playgroud)